Chuyen de ngon ngu lap trinh autoit

154 479 0
Chuyen de ngon ngu lap trinh autoit

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu Autoit AutoIt (phát âm awtoeit)2 là một ngôn ngữ lập trình được cung cấp miễn phí, có dạng kịch bản giống như BASIC được thiết kế để tự động hóa các GUI (Graphic User Interface: giao diện người dùng) và các thao tác thường dùng. Nó là sự phối hợp của việc giả lập nhấn phím, di chuyển chuột và thao tác trên cửa sổcontrol (control là các đối tượng tương tác được trên cửa sổ, ví dụ như là button nút bấm) để thực hiện tự động các tác vụ theo cách thức mà các ngôn ngữ khác không thể làm hoặc làm

Chuyên đề ngôn ngữ lập trình AutoIt Trang Chuyên đề ngôn ngữ lập trình AutoIt AutoIt ngôn ngữ lập trình có cú pháp tương tự gần ngôn ngữ BASIC, cung cấp miễn phí cho lập trình viên Ngôn ngữ lập trình AutoIt có công dụng để thực số thao tác tự động hóa giả lập phím nhấn, di chuyển chuột, thực số thao tác phức tạp khác cửa sổ, thao tác với tập tin, thư mục Tất chức kể ngôn ngữ AutoIt có nhờ hàm chức Nội dung sách xin trình bày số hàm hữu ích AutoIt hàm liên quan đến xử lý bàn phím, chuột, thao tác cửa sổ hàm liên quan đến xử lý tiến trình, Registry,… Đồng thời có phần hướng dẫn sử dụng công cụ Koda FormDesigner để thiết kế giao diện AutoIt Hàm xử lý biến môi trường Windows Thông thường để thiết lập biến môi trường Windows, bạn hay bấm phải chuột vào My Computer > Properties >Advanced, chọn Environment Variables (Windows XP) Bây bạn tận dụng số hàm có sẵn xử lý biến môi trường AutoIt để làm việc mà làm thao tác Trong phần xin giới thiệu thêm số hàm liên quan đến Clipboard, Memory EnvGet (“Envvar”) - Công dụng : lấy thông tin biến môi trường Windows - Envvar tên biến môi trường cần lấy thông tin Ví dụ “TEMP” “PATH” Ví dụ : $tam = EnvGet(“TEMP”); lấy thông tin biến môi trường TEMP đưa vào biến $tam MsgBox(4096, “Thong tin bien moi truong TEMP la : “, $tam); xuất hộp thoại thông báo kết hàm EnvSet(“Envvar”, [“value”]) - Công dụng : ghi liệu cho biến môi trường Windows - Envvar tên biến môi trường cần ghi liệu value tham số tùy chọn, chứa thông tin liệu cần ghi vào biến môi trường Nếu tham số hàm, biến môi trường “Envvar” bị xóa khỏi Windows Ví dụ : EnvSet("path", "D:\TCWIN45\BIN") EnvUpdate() - Công dụng : refresh lại biến môi trường Windows Thông thường bạn thực số thao tác cập nhật biến môi trường Windows bắt buộc phải khởi động lại máy có hiệu lực Nay bạn cần gọi hàm sau thực cập nhật biến môi trường mà không cần khởi động lại máy để hoàn thành cấu hình - Ví dụ : EnvSet("path", "D:\TCWIN45\BIN") EnvUpdate() ClipGet() Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang - Công dụng : lấy thông tin văn chứa Clipboard - Ví dụ : ClipPut(“text”) - Công dụng : ghi liệu văn vào Clipboard - Tham số text hàm liệu văn cần ghi Ví dụ : ClipPut(“Mr Trinh – DH10TH”) MemGetStats() - Công dụng : trả thông tin nhớ máy tính bạn Dữ liệu trả chứa mảng có bảy phần tử Trong phần tử đầu tiền chứa thông tin tỉ lệ phần trăm nhớ dùng Phần tử thứ hai chứa tổng dung lượng nhớ vật lý Phần tử thứ ba chứa thông tin nhớ vật lý có sẵn để sử dụng Phần tử thứ tư chứa thông tin tổng dung lượng Pagefile Phần tử thứ năm chứa thông tin dung lượng Pagefile lại có sẵn để sử dụng Phần tử thứ sáu chứa thông tin dung lượng nhớ ảo Phần tử thứ bảy chứa thông tin dung lượng nhớ ảo lại có sẵn sử dụng Đơn vị dung lượng nhớ tính KB Ví dụ : $tam = MemGetStats() MsgBox(0, “Phan tram dung luong bo nho da dung “, $tam[0]) Hàm quản lý tập tin, thư mục phân vùng đĩa cứng DirCopy(“sourcedir”, “destdir”, [flag]) - Công dụng : chép toàn nội dung bao gồm thư mục tập tin thư mục nguồn đến thư mục đích - Tham số sourcedir thư mục nguồn cần chép destdir thư mục đích mà thư mục nguồn chép tới flag tham số tùy chọn hàm này, flag = không ghi đè tập tin tồn sẵn thư mục đích, ngược lại flag = ghi đè tập tin thư mục đích trùng với tập tin thư mục nguồn Tham số flag = bật mặc định Nếu thư mục đích không tồn tại, hàm tạo thư mục đích cho bạn Ví dụ : DirCopy(@ProgramFilesDir, "D:\BackupPro", 1) ; chép nội thư mục Program Files phân vùng chứa hệ điều hành Windows sang thư mục D:\BackupPro Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang DirCreate(“path”) - Công dụng : tạo thư mục - Tham số path đường dẫn bạn muốn tạo thư mục Ví dụ : DirCreate("D:\Document\Cam nang") ; tạo thư mục Cam nang thư mục Document Trong trường hợp thư mục Document không tồn tại, hàm tạo sẵn cho bạn DirGetSize(“path”, [flag]) - Công dụng : trả kích thước thư mục Đơn vị tính : Bytes - Tham số path đường dẫn bạn cần lấy kích thước thư mục flag tham số tùy chọn, flag = 1, hàm trả mảng có ba phần tử Trong phần tử thứ chứa dung lượng thư mục, phần tử thứ hai chứa số tập tin, phần tử thứ ba chứa số thư mục Nếu flag = 2, hàm trả dung lượng thư mục mà Ví dụ : $size = DirGetSize("D:\Office", 2) MsgBox(0, "SizeOffice", "Kich thuoc thu muc la "&$size) DirMove(“sourcedir”, “destdir”, [flag]) Hàm có tham số cách sử dụng tương tự hàm DirCopy, có khác di chuyển nội dung bên thư mục sang thư mục khác DirRemove(“path”, [flag]) - Công dụng : xóa thư mục - Tham số path đường dẫn thư mục cần muốn xóa flag tham số tùy chọn, mặc định Trường hợp flag = 0, thư mục cần xóa có thư mục tập tin không xóa Trường hợp flag = 1, thư mục cần xóa có thư mục tập tin xóa Ví dụ : DirRemove("D:\Thu vien sach noi", 1) DriveGetDrive(“Type”) - Công dụng : trả kí tự ổ đĩa máy tính mà tìm thấy - Tham số Type loại thiết bị mà bạn muốn lấy Hàm trả mảng, phần tử số ổ đĩa hay thiết bị mà tìm thấy Các phần tử lại mảng chứa kí tự ổ đĩa hay thiết bị Các loại thiết bị : CDROM, NETWORK, REMOVABLE, RAMDISK, UNKNOWN, ALL (tất thiết bị trên) - Ví dụ : Lê Viễn Trình – Đại học An Giang Trang Chuyên đề ngôn ngữ lập trình AutoIt Trong máy tính có ổ đĩa CDROM (1 ổ đĩa vật lý, ổ đĩa ảo) Do có hộp thoại thông báo Sau liệt kê ổ đĩa CDROM máy tính DriveGetFileSystem (“path”) - Công dụng : trả hệ thống tập tin phân vùng ổ đĩa bạn - path tham số đường dẫn ổ đĩa bạn Hàm trả giá trị chuỗi Nếu giá trị trả 1, ổ đĩa bạn không định dạng hàm không nhận Ngoài trả giá trị FAT, FAT32, NTFS, NWFS (hệ thống tập tin Novell Netware File Server), CDFS, UDF - Ví dụ : $tam = DriveGetFileSystem( "D:\" ) MsgBox(4096,"File System Type:", $tam) DriveGetLabel(“path”), DriveGetSerial(“path”), DriveSpaceFree (“path”), DriveSpaceTotal(“path”) DriveGetType(“path”), Các hàm có công dụng lấy nhãn ổ đĩa, lấy số serial, lấy thông tin loại ổ đia, trả khoảng không gian trống ổ đĩa (MB), trả tổng không gian ổ đĩa (MB) Trong path đường dẫn đến phân vùng ổ đĩa bạn Ví dụ : DriveSetLabel(“path”, “label”) Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang - Công dụng : thay đổi nhãn ổ đĩa bạn - path : đường dẫn phân vùng ổ đĩa bạn label tên nhãn cần gán cho ổ đĩa Ví dụ : DriveSetLabel("D:\", "Mr Trinh") 10 DriveMapAdd(“device”, “remote share”, [flags], [“user”], [“password”]) - Công dụng : thực ánh xạ ổ đĩa tương tự tính Map Network Drive Windows - Tham số device kí tự ổ đĩa mà bạn muốn gán, remote share đường dẫn đến thư mục ổ đĩa mạng mà bạn cần ánh xạ, flag : cờ trạng thái, = sử dụng tham số đăng nhập tự động mà bạn cung cấp tiến hành kết nối liên tục, = xuất hộp thoại yêu cầu đăng nhập username password có yêu cầu từ thư mục mạng chia sẻ user password thông tin tài khoản mà bạn cần cung cấp ổ đĩa ánh xạ bạn phải có tài khoản để đăng nhập Ví dụ : DriveMapAdd("S:", "\\NETWORKDRIVE\SHARE", 0, "mrvientrinh", "lvt*tl91") 11 DriveMapDel(“device”) - Công dụng : xóa kết nối ánh xạ ổ đĩa tương tự tính Disconnect Network Drive - device : tham số tên ổ đĩa ánh xạ mà bạn cần xóa Ví dụ : DriveMapAdd("S:", "\\NETWORKDRIVE\SHARE", 0, "mrvientrinh", "lvt*tl91") DriveMapDel("S:") 12 DriveMapGet(“device”) - Công dụng : xem thông tin kết nối ổ đĩa ánh xạ - Device : kí tự ổ đĩa ánh xạ mà bạn cần xem thông tin Ví dụ : DriveMapAdd("S:", "\\NETWORKDRIVE\SHARE", 0, "mrvientrinh", "lvt*tl91") MsgBox(0, "Thong tin ket noi", DriveMapGet("S:")) 13 FileGetAttrib(“filename”) - Công dụng : lấy thuộc tính tập tin - filename : đường dẫn tập tin cần lấy thông tin thuộc tính Hàm trả chuỗi kí tự kết hợp đại diện cho thuộc tính trông giống “RASHNDOCT” Trong R : đọc, A : lưu trữ, S : hệ thống, H : ẩn, N : thông thường, D : thư mục, O : ngoại tuyến, C : nén, theo phân vùng có định dạng NTFS, định dạng nén ZIP, T : thuộc tính tạm Ví dụ : $thuoctinh = FileGetAttrib("C:\boot.ini") MsgBox(0, "Thuoc tinh cua tap tin boot.ini", $thuoctinh) ; kết “SH” 14 FileSetAttrib(“filename”, “attrib”, [flag]) - Công dụng : Thiết lập số thuộc tính cho tập tin - filename : tên tập tin bạn cần gán thuộc tính, bạn dùng dấu * để miêu tả cho tập hợp tập tin attrib thuộc tính bạn cần gán (bạn xem thuộc tính hàm FileGetAttrib) + : gán thuộc tính, - : bỏ thuộc tính flag tham số tùy chọn (áp dụng bạn thiết lập thuộc tính cho thư mục), flag = trường hợp bạn gán thuộc tính cho thư mục toàn thư mục tập tin nằm Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang thư mục có thuộc tính giống thư mục thiết lập Nếu flag = (tham số mặc định), có thư mục nằm đường dẫn filename gán thuộc tính mà Ví dụ : FileSetAttrib("D:\*.*", "+S+H-R") ; gán thuộc tính cho tất tập tin gốc ổ đĩa D thành tập tin hệ thống, ẩn bỏ thuộc tính đọc 15 FileGetEncoding(“filename”, [mode]) - Công dụng : xác định chế độ encoding dùng tập tin văn - filename : đường dẫn tập tin cần xác định, [mode]: tham số tùy chọn, mặc định Trong trường hợp mode = 1, hàm kiểm tra chế độ mã hóa toàn tập tin để xác định Trong trường hợp mode = 2, hàm kiểm trả chế độ mã hóa phần đầu tập tin Nếu hàm gọi bị lỗi trả giá trị -1 Nếu gọi thành công, hàm trả giá trị sau :  : tập tin mã hóa theo ANSI  32 : UTF16 Little Endian  64 : UTF16 Big Endian  128 : UTF8 (with BOM)  256 : (without BOM) Ví dụ : 16 FileGetShortcut(“lnk”) - Công dụng : lấy thông tin chi tiết shortcut - lnk tham số đường dẫn đến shortcut mà bạn muốn xem thông tin Hàm trả mảng gồm bảy phần tử Trong phần tử thứ chứa đường dẫn tập tin Phần tử thứ hai chứa thông tin đường dẫn thư mục tập tin Phần tử thứ ba chứa đối số shortcut (nếu có) Phần tử thứ tư chứa thông tin mô tả cho shortcut Phần tử thứ năm chứa đường dẫn tập tin icon Phần tử thứ sau chứa số mục icon cho shortcut Phần tử thứ bảy chứa thông tin kiểu cửa sổ thực thi nhấp đôi vào shortcut bao gồm : (cửa sổ thông thường), (cửa sổ thu nhỏ Taskbar), (phóng lớn toàn cửa sổ chương trình) Ví dụ : $details = FileGetShortcut("C:\Documents and Settings\Mr Trinh\Start Menu\Programs\Windows Media Player.lnk") Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang MsgBox(0, "Duong dan cua Windows Media Player:", $details[0]) 17 FileMove(“source”, “dest”, [flag]) - Công dụng : di chuyển tập tin - source đường dẫn tập tin nguồn cần di chuyển dest : đường dẫn thư mục đích mà tập tin cần di chuyển tới flag tham số tùy chọn, flag = -> tiến hành ghi đè tập tin thư mục đích có tồn tập tin đó, flag = -> không ghi đè tập tin tồn thư mục đích, flag = > trường hợp đường dẫn thư mục đích bạn gõ vào thực, tham số cho phép hàm tiến hành tạo cấu trúc thư mục đích Bạn kết hợp tham số cờ flag cách gõ số tổng chúng Ví dụ bạn muốn có tùy chọn cờ flag vừa 8, bạn gán tham số flag = Ví dụ : FileMove(“D:\*.txt", @TempDir & "\TxtFiles\", 9) 18 FileOpenDialog(“title”, “dir”, “filter”, [options], [“defaultname”]) - Công dụng : mở hộp thoại Open (thường ứng dụng lập trình giao diện) - title : tên tiêu đề cửa sổ Open mà bạn cần xác lập dir thư mục mặc định mở hộp thoại Open filter lọc tập tin (chỉ cho phép hiển thị tập tin thư mục dạng đặc biệt chọn) options tham số tùy chọn hàm, có tham số tùy chọn > Tên tập tin mở cần phải tồn (áp dụng cho người dùng mở tập tin cách gõ đường dẫn) > Tên thư mục cần mở phải tồn (áp dụng cho người dùng mở thư mục cách gõ đường dẫn) > Cho phép chọn nhiều tập tin > Xác nhận tạo tập tin không tồn defaultname : tên tập tin ngầm định nằm ô File name hộp thoại Open Hàm gọi thành công trả đường dẫn đầy đủ tập tin chọn Nếu chọn nhiều tập tin kết trả có dạng "Directory|file1|file2| " Ví dụ : FileOpenDialog("Open", "D:\", "Image (*.jpg;*.bmp)|Music (*.mp3)", 5, "VienTrinh"); tạo hộp thoại Open với tham số tên tiêu đề cửa sổ Open, thư mục mặc định ổ D, loại tập tin cần mở *.jpg, *.bmp, *.mp3, cho phép chọn nhiều tập tin người dùng gõ đường dẫn cho tập tin cần mở tập tin phải tồn (tham số options = 5, tổng 4), tên tập tin ngầm định mở VienTrinh Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 19 FileRecycle(“source”) - Công dụng : xóa tập tin đưa vào thùng rác - source đường dẫn tập tin Ví dụ : FileRecycle("D:\*.mp3") 20 FileRecycleEmpty([“rootpath”]) - Công dụng : xóa tập tin thùng rác - rootpath : tham số tùy chọn Nó ổ đĩa gốc cho tập tin mà bạn muốn xóa thùng rác Nếu tham số rỗng, xóa tất tập tin thùng rác Ví dụ : bạn muốn xóa tập tin thùng rác, xóa tập tin có đường dẫn từ ổ D Bạn gõ hàm sau : FileRecycleEmpty("D:\") 21 FileSaveDialog(“title”, “dir”, “filter”, [options], [“defaultname”]) - Công dụng : mở hộp thoại Save - Các tham số tương tự hàm FileOpenDialog, thao tác Save Tham số options có khác đối chút, có hai tùy chọn, : > Đường dẫn thư mục cần phải tồn tại, người dùng gõ đường dẫn lưu tay 16 > Xác nhận việc ghi đè tập tin có trùng tên tập tin 22 FileSelectFolder(“dialogtext”, “rootdir”, [flag], [“dir”]) - Công dụng : mở hộp thoại chọn thư mục - dialogtext : dòng chữ giới thiệu xuất thư mục rootdir : thư mục gốc cho thư mục (nếu tham số “”, thư mục gốc Desktop), flag > cờ tham số tùy chọn, có ba tham số sau : > Hiện nút Make New Folder hộp thoại chọn Folder > Dùng style New Dialog cho hộp thoại Select > Hiện điều khiển Edit, dùng để gõ tên thư mục (nếu cần) Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang dir : thư mục mặc định chọn mở hộp thoại Select Folder Ví dụ : 23 FileGetTime(“filename”, [option], [format]) - Công dụng : trả thông tin ngày tập tin - Xem bảng thông số hàm sau filename option Đường dẫn tập tin cần lấy thông tin ngày Tham số quy định loại thông tin cần trả = Thông tin ngày, chỉnh sửa tập tin cuối (mặc định) = Thông tin ngày, tạo tập tin = Thông tin ngày, truy cập tập tin lần cuối format Tham số quy định kiểu kết trả (mặc định) = Thông tin ngày trả mảng có sáu phần tử Phần tử chứa thông tin năm (có bốn chữ số) Phần tử thứ hai chứa thông tin tháng (01 – 12) Phần tử thứ ba chứa ngày (01 – 31) Phần tử thứ tư chứa thông tin (00 – 23) Phần tử thứ năm chứa phút (00 – 59) Phần tử thứ sau chứa thông tin giây (00 – 59) Nếu tham số format = 1, hàm trả chuỗi string có định dạng sau YYYYMMDDHHMMSS (YYYY – năm, MM – tháng, DD – ngày, HH – giờ, MM – phút, SS – giây) Ví dụ : $t = FileGetTime(@Windowsdir & "\Notepad.exe", 1) If Not @error Then $yyyymd = $t[0] & "/" & $t[1] & "/" & $t[2] MsgBox(0, "Ngay, thang, nam tao tap tin Notepad.exe", $yyyymd) EndIf 24 FileGetVersion(“filename”, [“stringname”]) Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 10 - Công dụng : lấy thông tin phiên tập tin Ngoài lấy thêm số thông tin khác - filename : đường dẫn tên tập tin stringname : tên trường thông tin cần lấy từ header thông tin tập tin stringname : Comments, InternalName, ProductName, CompanyName, LegalCopyright, ProductVersion, FileDescription, LegalTrademarks, PrivateBuild, FileVersion, OriginalFilename, SpecialBuild Ví dụ : $Prname = FileGetVersion("Explorer.exe", "ProductName") MsgBox(0, "Explorer version", $Prname) $ver = FileGetVersion("Explorer.exe") MsgBox(0, "Explorer version", $ver) 25 FileInstall(“source”, “dest”, [flag]) - Công dụng : kết hợp tập tin vào đoạn mã lệnh script AutoIt Khi đoạn mã lệnh biên dịch, tập tin script AutoIt đưa vào ổ đĩa thư mục khác máy tính bạn tùy thuộc vào tham số dest hàm - source : đường dẫn đến tập tin cần đưa vào mã lệnh script AutoIt dest đường dẫn đích mà biên dịch, tập tin kết hợp chuyển vào vị trí flag tham số tùy chọn, mặc định flag = 0, không ghi đè tập tin có tập tin trùng tên thư mục đích flag =1 tiến hành ghi đè tập tin bị trùng đường dẫn đích Ví dụ : $b = True If $b = True Then FileInstall("D:\rabbit.jpg", "C:\test.jpg") Bây bạn tạo tập tin có tên rabbit.jpg đặt ổ D Sau chép đoạn mã ví dụ vào cửa sổ SciTE, nhấn F5 để tiến hành chạy thử chương trình Sau bạn qua ổ C để xem kết 26 FileFindFirstFile(“filename”) - Công dụng : tìm kiếm tập tin/thư mục theo yêu cầu người dùng trả “handle” chứa danh sách tập tin/thư mục thỏa điều kiện Hàm kết hợp với hàm FileFindNextFile để liệt kê tập tin kết tìm thấy - filename : đưởng dẫn ổ đĩa thư mục cần tìm kiếm Nếu không quy định đường dẫn ổ đĩa thư mục, hàm tìm kiếm thư mục chứa tập tin *.au3 (tập tin mã script AutoIt bạn) Bạn dùng mẫu tự Wildcards * ? để quy định tập tin trả (* - đại diện cho chuỗi kí tự, ? - đại diện cho kí tự) - Hàm gọi thành công trả “handle” để bạn dùng tiếp với hàm FileFindNextFile Hàm trả -1 có lỗi xảy Ví dụ : $search = FileFindFirstFile("D:\*.*") If $search = -1 Then MsgBox(0, "Error", "Khong co tap tin hoac thu muc nao thoa dieu kien tim kiem") Exit EndIf Lê Viễn Trình – Đại học An Giang Trang 140 Chuyên đề ngôn ngữ lập trình AutoIt đoạn code sau vòng lặp thông điệp bị tạm dừng thoát khỏi vòng lặp Hàm giả lập thao tác chuột máy tính MouseClick(“button”, [x], [y], [click], [speed]) - Công dụng : giả lập thao tác nhấn chuột - button tham số định nút chuột nhấn Thông thường có tham số sau : left primary main (nút trái chuột nhấn), right secondary menu (nút phải chuột nhấn), middle (nút chuột, nằm nút trái nút phải chuột Chú ý thao tác nhấn cuộn lên cuộn xuống) - x, y tọa độ hình mà trỏ chuột di chuyển tới trước nhấn Nếu tham số x, y không cho, vị trí trỏ chuột sử dụng - click : số lần thực thao tác nhấn chuột Mặc định - speed : tốc độ di chuyển chuột, có giá trị từ (nhanh nhất) đến 100 (chậm nhất) Nếu bạn gán tham số chuột di chuyển nhanh tức Giá trị mặc định tham số 10 - Nếu người dùng cung cấp tham số button “” chuột trái nhấn - Nếu người dùng tiến hành tráo đổi vai trò nút trái nút phải chuột Control Panel (áp dụng cho người dùng chuột tay trái) có chút thay đổi thực hàm Cụ thể bạn xem bảng sau : Button Chuột sau tráo đổi vai trò nút trái nút phải chuột Control Panel Chuột bình thường, không tráo đổi vai trò nút trái nút phải chuột "" Nút trái chuột nhấn Nút trái chuột nhấn "left" Nút trái chuột nhấn Nút trái chuột nhấn "middle" Nút chuột nhấn Nút chuột nhấn "right" Nút phải chuột nhấn Nút phải chuột nhấn "primary" Nút trái chuột nhấn Nút phải chuột nhấn "main" Nút trái chuột nhấn Nút phải chuột nhấn "secondary" Nút phải chuột nhấn Nút trái chuột nhấn "menu" Nút phải chuột nhấn Nút trái chuột nhấn Ví dụ : MouseClick("left", 0, 500, 1) MouseClickDrag (“button”, x1, y1, x2, y2, [speed]) - Công dụng : thực thao tác nhấn chuột giữ chuột (drag) từ vị trí đến vị trí khác - x1, y1 : tọa độ hình mà chuột tiến hành bắt đầu thao tác giữ chuột x2, y2 Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 141 : tọa độ hình mà chuột di chuyển tới cuối trình giữ chuột - Tham số speed, button, tác động hàm thay đổi vai trò nút trái chuột nút phải chuột ControlPanel tương tự hàm MouseClick Ví dụ : MouseClickDrag("right", 0, 200, 600, 700) MouseDown (“button”) - Công dụng : thực thao tác nhấn giữ chuột (nhấn chìm nút chuột) vị trí trỏ chuột hành - Tham số button tương tự hàm MouseClick Ví dụ : MouseDown("left") Sleep(2000) MouseUp(“button”) - Công dụng : thực thao tác nhả chuột vị trí trỏ chuột hành Hàm nên kèm với MouseDown để thực thao tác nhấn nhả chuột - Tham số button tương tự hàm MouseClick Ví dụ : MouseDown("right") Sleep(2000) MouseUp("right") MouseMove (x, y, [speed]) - Công dụng : thực thao tác di chuyển chuột vị trí trỏ chuột - x, y tọa độ đích hình mà trỏ chuột di chuyển tới - Tham số speed tương tự hàm MouseClick Ví dụ : MouseMove(10, 100) MouseMove(700, 700, 0) MouseGetPos([dimension]) - Công dụng : lấy thông tin tọa độ X, Y trỏ chuột hình - dimension tham số quy định giá trị trả Nếu bạn không cung cấp tham số này, hàm trả mảng có hai phần tử, phần tử đầu tiền chứa tọa độ X, phần tử thứ hai chứa tọa độ Y Nếu tham số 0, hàm trả tọa độ X Nếu tham số 1, hàm trả tọa độ Y Ví dụ : $pos = MouseGetPos() MsgBox(0, "Vi tri tro chuot hien tai", $pos[0] & " - " & $pos[1]) MouseWheel(“direction”, [click]) - Công dụng : thực thao tác cuộn chuột lên cuộn chuột xuống nút chuột - direction : tham số quy định thao tác cuộn lên cuộn xuống Nếu tham số up tiến hành cuộn lên Nếu tham số down tiến hành cuộn xuống click số lần thao tác tiến hành cuộn lên cuộn xuống Ví dụ : MouseWheel("up", 10); thực thao tác cuộn lên 10 lần Từ khóa / câu lệnh AutoIt Bài viết tác giả Võ Minh Trí – DH7TH2 có cung cấp số từ khóa / câu lệnh đơn giản AutoIt Nay xin giới thiệu thêm cho bạn số từ khóa / câu lệnh khác Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 142 #comments-start #comments-end - Công dụng : xác lập đoạn mã lệnh soạn thảo thành thích Ví dụ : #comments-start MsgBox(4096, "", "This won't be executed") MsgBox(4096, "", "Or this") #comments-end Đoạn mã làm cho hai câu lệnh MsgBox trở thành thích mã lệnh thực thi - Bạn thay từ khóa #comments-start thành #cs #comments-end thành ce có công dụng tạo khối thích tương tự #include - Công dụng : sử dụng thư viện nằm thư mục Include AutoIt nhằm mục đích sử dụng hàm nằm thư viện mà include vào - Cú pháp : #include "[path\]filename" #include Trong filename tên tập tin cần include vào path tham số tùy chọn đường dẫn đến tập tin cần include Nhưng phải làm chuỗi biến Nếu bạn sử dụng thị include dạng #include "[path\]filename", bạn phải cung cấp đường dẫn đầy đủ tập tin cần include vào Nếu bạn sử dụng thị include dạng #include tập tin thư viện nạp AutoIt lấy từ thư mục thư viện AutoIt (thông thường C:\Program Files\AutoIt3\Include Thư viện AutoIt có nhiều hàm định nghĩa sẵn bạn dùng Ví dụ : Để nạp thư viện GUIConstantsEx.au3 bạn dùng thị #include phần đầu chương trình thư viện GUIConstantsEx.au3 nằm phân vùng E bạn dùng #include "E:\GUIConstants.au3" - Trong AutoIt, script khác (*.au3) include vào chương trình soạn thảo thị #include #include-once - Công dụng : bạn include vào tập tin thư viện mà tập tin thư viện có chứa hàm trùng tên báo lỗi “Duplicate function” Do để tránh lỗi trên, bạn phải thêm thị #include-once để ngăn cản lỗi nạp chồng hàm - Để sử dụng, bạn cần thêm chr thị #include-once phần đầu chương trình #NoTrayIcon - Công dụng : không cho hiển thị biểu tượng AutoIt khay hệ thống chương trình chạy - Bạn sử dụng mã Opt("TrayIconHide", 1) chương trình để gỡ bỏ biểu tượng AutoIt khay hệ thống, nhiên biểu tượng AutoIt hiển thị vòng giây chương trình bắt đầu Để sử dụng từ khóa này, bạn đặt từ khóa phần đầu chương trình - Bạn tiến hành cho icon AutoIt khay hệ thống cách sử dụng mã Opt("TrayIconHide", 0) Ví dụ : #NoTrayIcon MsgBox(4096,"Nhan OK","Hien icon tren khay he thong vong giay ") Opt("TrayIconHide", 0) ; ẩn icon AutoIt Sleep(5000) Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 143 #OnAutoItStartRegister “function” - Công dụng : gọi hàm người dùng định nghĩa chương trình mã lệnh AutoIt bạn bắt đầu thực thi function tên hàm mà bạn cần gọi Ví dụ : #OnAutoItStartRegister "MyTestFunc" MsgBox(0, "MyTest", "Hello World") Func MyTestFunc() MsgBox(0, "AutoIt Start", "AutoIt Start") EndFunc #RequireAdmin - Công dụng : thiết lập đoạn script yêu cầu tài khoản người dùng phải có quyền quản trị chạy - Từ khóa chương trình nhằm mục đích làm cho ngôn ngữ AutoIt chạy hệ điều hành Windows Vista (UAC) Tuy nhiên làm việc tốt với Windows 2000 Windows XP Ví dụ : #RequireAdmin MsgBox(4096,"Info","Now running with admin rights") ContinueCase - Công dụng : kết thúc case thực câu lệnh case cấu trúc Select Switch - Thông thường cấu trúc Select Switch, biểu thức case thứ không kiểm tra mệnh đề case thứ hai, case thứ hai không thực thi kiểm tra mệnh đề case thứ ba hết case Nếu mệnh đề case thực thi câu lệnh tương ứng với case kết thúc thực thi cấu trúc Select Switch Việc thêm câu lệnh ContinueCase làm cho case kết thúc chuyển sang thực thi câu lệnh case thứ hai - Việc thực thi câu lệnh ContinueCase bên cấu trúc Select Switch gây lỗi Ví dụ : $msg = "" $szName = InputBox(Default, "Please enter a word.", "", " M", _ Default, Default, Default, Default, 10) Switch @error Case $msg = "Timeout " ContinueCase Case 1; Continuing previous case $msg &= "Cancellation" Case Switch $szName Case "a", "e", "i", "o", "u" $msg = "Vowel" Case "QP" Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 144 $msg = "Mathematics" Case "Q" to "QZ" $msg = "Science" Case Else $msg = "Others" EndSwitch Case Else $msg = "Something went horribly wrong." EndSwitch MsgBox(0, Default, $msg) ContinueLoop - Công dụng : chạy tiếp vòng lặp vòng lặp While, Do, For - ContinueLoop bỏ qua vòng lặp tiếp tục thực thi biểu thức kiểm tra vòng lặp (đó biểu thức lệnh While, Until Next) Mặc dù đoạn chương trình dùng câu lệnh ContinueLoop viết lại cấu trúc If Tuy nhiên việc dùng ContinueLoop làm cho chương trình bạn dễ hiểu Khi sử dụng câu lệnh ContinueLoop bạn phải ý sử dụng cho không tạo nên vòng lặp vô tận, đặc biệt vòng lặp While/Do Ví dụ : For $i = to 10 If $i = Then ContinueLoop MsgBox(0, "Gia tri cua $i la:", $i) Next Đoạn chương trình in giá trị biến $i từ đến 10 không in giá trị Dim - Công dụng : khai báo biến, hằng, tạo mảng - Cú pháp khai báo sau : Dim [Const] $variable [ = initializer ] để khai báo mảng ta dùng Dim [Const] $array[subscript 1] [subscript n] [ = initializer ] - Tham số const tham số tùy chọn, có tạo biến thay đổi giá trị $variable tên biến cần khai báo initializer giá trị khởi tạo cho biến subscript số phần tử tương với cho chiều mảng - Các từ khóa Dim, Local Global thực chức tương tự : khởi tạo biến trước bạn dùng (tương tự VBScript) tạo mảng - Trong AutoIt, bạn tạo biến đơn giản cách gán biến với giá trị, chẳng hạn &myvar = nhiều người muốn khai báo rõ ràng Nếu bạn cung cấp đoạn mã Opt(“MustDeclareVars”, 1) phần đầu chương trình biến phải khai báo trước sử dụng Bạn khai báo biến khởi tạo giá trị biến dòng ví dụ sau : Dim $a = 2, $b = 10, $c = 20 - Để khởi tạo giá trị cho mảng nhiều chiều, bạn đặt giá trị phần tử bên dấu ngoặc vuông, cách dấu phẩy Đối với mảng nhiều chiều, bạn cung cấp số giá trị thấp số phần từ mà bạn khai báo, không nhiều Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 145 Ví dụ : Dim $arrayM[2][5] = [[1,2,3,4,5], ["a","b"]] - AutoIt có khả cho phép bạn chép mảng sang mảng khác, chẳng hạn $mycopy = $myarray Trong câu lệnh chép nội dung mảng $myarray sang $mycopy biến $mycopy có số chiều với mảng $myarray Để xóa nội dung mảng, bạn cung cấp lệnh gán đơn giản sau $array = Hàm hủy nội dung mảng chuyển biến thông thường có giá trị - Nếu bạn khai báo biến hàm tên với tham số hàm cách dùng thị Local có lỗi xảy Bạn dùng thị Global để gán biến hàm làm biến toàn cục, nhiên biến local (hay tham số) hàm trùng tên với biến Global có biến local sử dụng mà Bạn nên đặt tên biến local global có tên khác 10 Enum - Công dụng : sử dụng biến để lưu trữ tập hợp, chẳng hạn ngày tuần tháng năm - Cú pháp [scope] Enum [Step ] Trong scope dạng biến cho tập hợp Enum, Dim, Local Global Nếu bạn không cung cấp, Dim mặc định sử dụng stepval giá trị nhảy biến tập hợp, mặc định Bạn sử dụng phương thức để nhảy *n, +n, -n với n số nguyên constantlist danh sách biến chứa để liệt kê cách dấu phẩy - Theo mặc định, biến liệt kê có giá trị 0, biến liệt kê lại có giá trị giá trị biến trước cộng với Khi bạn cung cấp tham số tăng giá trị stepval biến gán giá trị 1, phần tử lại có giá trị giá trị phần tử trước tăng theo giá trị bước nhảy stepval mà bạn quy định Biến liệt kê Enum có giá trị gán câu lệnh hợp lệ từ người dùng Ví dụ : Global Enum $E1VAR1, $E1VAR2, $E1VAR3 MsgBox(4096, "", "$E1VAR1 = " & $E1VAR1); trả MsgBox(4096, "", "$E1VAR2 = " & $E1VAR2); trả MsgBox(4096, "", "$E1VAR3 = " & $E1VAR3); trả Global Enum $E2VAR1 = 10, $E2VAR2, $E2VAR3 = 15 MsgBox(4096, "", "$E2VAR1 = " & $E2VAR1); trả 10 MsgBox(4096, "", "$E2VAR2 = " & $E2VAR2); trả 11 MsgBox(4096, "", "$E2VAR3 = " & $E2VAR3); trả 15 Global Enum Step *2 $E3VAR1, $E3VAR2, $E3VAR3 MsgBox(4096, "", "$E3VAR1 = " & $E3VAR1); trả MsgBox(4096, "", "$E3VAR2 = " & $E3VAR2); trả MsgBox(4096, "", "$E3VAR3 = " & $E3VAR3); trả 11 ReDim - Công dụng : xác lập lại kích thước mảng - Cú pháp : ReDim $array[subscript 1] [subscript n] Trong array tên biến mảng cần thay đổi kích thước subscript đến subscript n số phần tử chiều tương ứng mảng - Từ khóa ReDim tương tự Dim, ngoại trừ việc ReDim giữ lại giá trị mảng thay loại bỏ giá trị thay đổi kích thước mảng Số chiều mảng cũ đồng thời giữ lại phạm vi biến mảng (Global Local) mà Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 146 có trước thay đổi kích thước Ví dụ : Dim $I, $K, $T, $MSG Dim $X[4][6], $Y[4][6] For $I = To For $K = To $T = Int(Random(20) + 1) ; trả số ngẫu nhiên từ đến 20 $X[$I][$K] = $T $Y[$I][$K] = $T Next Next ReDim $X[3][8] Dim $Y[3][8] $MSG = "" ; hiển thị giá trị phần tử mảng X For $I = To UBound($X, 1) - For $K = To UBound($X, 2) - If $K > Then $MSG = $MSG & ", " $MSG = $MSG & $X[$I][$K] Next $MSG = $MSG & @CR Next MsgBox(0, "ReDim Demo", $MSG) $MSG = "" ; hiển thị giá trị phần tử mảng X For $I = To UBound($Y, 1) - For $K = To UBound($Y, 2) - If $K > Then $MSG = $MSG & ", " $MSG = $MSG & $Y[$I][$K] Next $MSG = $MSG & @CR Next MsgBox(0, "ReDim Demo", $MSG) Ngay sau bạn chạy ví dụ trên, bạn thấy phần tử mảng X giữ lại giá trị sau thay đổi kích thước Riêng mảng Y khai báo với từ khóa Dim nên giá trị mảng bị xóa hết sau thay đổi kích thước bạn thấy hiển thị phần tử mảng Y hết 12 ExitLoop [level] - Công dụng : thoát khỏi vòng lặp While/Do/For - level số bậc vòng lặp cần thoát Tham số thường áp dụng cho vòng Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 147 lặp lồng Mặc định 1, tức vòng lặp chứa thị ExitLoop thoát Ví dụ : $sum = While = While ;dùng vòng lặp vô lận thị ExitLoop gọi $ans = InputBox("Running total=" & $sum, _ " Enter a positive number (A negative number exits)") If $ans < Then ExitLoop $sum = $sum + $ans WEnd MsgBox(0, "ExitLoop", "Da Thoat vong lap ""while 1""") WEnd MsgBox(0,"The sum was", $sum) Đoạn chương trình cho người dùng nhập số vào hộp InputBox sau tính tổng số vừa nhập vào Chương trình bắt đầu hiển thị kết tổng sau người dùng nhập số âm Trong thị ExitLoop bạn thấy ví dụ, thị làm cho vòng lặp “While =1” thoát Những câu hỏi thường gặp lập trình AutoIt Phần trình bày cho bạn số câu hỏi thường gặp sử dụng ngôn ngữ lập trình AutoIt diễn đàn người sử dụng AutoIt trang http://www.autoitscript.com/forum/ Nếu bạn không tìm thấy câu hỏi thắc mắc đây, bạn vào trang web để tham gia thảo luận với thành viên khác diễn đàn Tại chạy đoạn mã AutoIt v2.64 phiên v3 ? Phiên v3 AutoIt có số khác biệt cấu trúc ngôn ngữ so với phiển v2.64 Các phiên trước AutoIt thường dùng để viết đoạn mã lệnh đơn giản nhằm mục đích cài đặt phần mềm Tuy nhiên theo thời gian, người dùng AutoIt dùng mã lệnh ngôn ngữ để lập trình cho tác vụ tự động hóa ngày phức tạp Cú pháp cấu trúc ngôn ngữ phiên cũ AutoIt thực tác vụ nhiên gây số khó khăn cho người lập trình rườm rà Để cho ngôn ngữ AutoIt thực tác vụ tự động hóa nói chung phù hợp phiên AutoIt v3 đời Và bạn có tảng lập trình ngôn ngữ khác, bạn sử dụng AutoIt v3 cách dễ dàng Phiên v3 AutoIt có gây khó khăn cho người lập trình so với phiên trước không ? Hầu hết trường hợp, phiên v3 AutoIt sử dụng dễ dàng so với phiên trước Nó tương đồng với ngôn ngữ BASIC bạn biết BASIC ngôn ngữ đơn giản Phần lớn đoạn mã lệnh AutoIt phiên cũ chủ yếu tập trung thao tác nhấn “Next” hộp thoại việc cài đặt phần mềm Hầu hết đoạn mã lệnh thực thao tác dễ dàng chuyển đổi sang v3 đơn giản cách thêm dấu ngoặc Dưới ví dụ cho bạn thấy thay đổi phiên v2 v3 Đoạn mã sau minh họa việc tự động cài đặt phần mềm thông qua thao tác nhấn “Next” kết thúc cài đặt thông qua nhấn nút “Finish” hộp thoại cài đặt ; Đoạn mã lệnh phiên v2.64 WinWaitActive, Welcome, Welcome to the XSoft installation Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 148 Send, !n WinWaitActive, Choose Destination, Please choose the Send, !n WinWaitActive, Ready to install, Click Next to install Send, !n WinWaitActive, Installation Complete, Click Finish to exit Send, !f WinWaitClose, Installation Complete ; đoạn mã lệnh tương ứng phiên v3 WinWaitActive("Welcome", "Welcome to the XSoft installation") Send("!n") WinWaitActive("Choose Destination", "Please choose the") Send("!n") WinWaitActive("Ready to install", "Click Next to install") Send("!n") WinWaitActive("Installation Complete", "Click Finish to exit") Send("!f") WinWaitClose("Installation Complete") Bạn thấy phiên v3 giúp cho người dùng thuận tiện sử dụng hàm lung tung phiên v2.64 Tất chuỗi đóng dấu ngoặc kép tham số hàm đặt dấu ngoặc kép ngăn cách dấu “,” Hầu hết trình soạn thảo ngôn ngữ đơn giản có hỗ trợ làm bật cú pháp tô sáng (highlight) bạn soạn thảo mã đơn giản nhiều Tôi chuyển đổi đoạn mã lệnh AutoIt v2 sang phiên v3 cách ? Vấn đề bạn cần suy nghĩ xem bạn có cần phải chuyển đổi đoạn mã bạn không V2.64 tải mạng hỗ trợ bạn không cần phải chuyển đổi đoạn mã lệnh bạn, ngoại trừ trường hợp bạn muốn Trong tài liệu AutoIt Help có chương nói mối liên hệ dòng lệnh phiên AutoIt v2 v3 Bạn xem mục Using AutoIt -> Note for Auto It v2 Users tài liệu Help AutoIt Các tác giả AutoIt v3 có viết tiện ích chuyển đổi đoạn mã phiên v2 sang v3 Tiện ích làm việc tốt, bạn tìm tiện ích thư mục “Extras” thư mục cài đặt AutoIt Tuy nhiên theo tiện ích chuyển đổi phiên AutoIt mà sử dụng, nằm phiên v3 cũ Bạn lên Google Search xem coi có tiện ích chuyển đổi tương tự không Chỉ thị lệnh “goto” nằm đâu ? Chỉ thị goto gây nhiều lỗi khó kiểm soát lập trình Việc sử dụng thị goto làm cấu trúc chương trình (như lời With – tác giả Pascal có nói) Đối với chương trình nhỏ, bạn dùng thị goto Tuy nhiên chương trình lớn, việc dùng goto làm cho chương trình thêm phức tạp AutoIt có hỗ trợ cho người lập trình dùng số vòng lặp phổ biến thị goto không cần thiết để sử dụng Bạn sử dụng thị mà AutoIt hỗ trợ While, Do, For, ExitLoop, ContinueLoop Khi bạn nắm vòng lặp này, bạn hiểu cấu trúc lặp ngôn ngữ khác vòng vài phút Để minh họa cho việc dùng vòng lặp thay thị goto, bạn xem ví dụ sau : Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 149 Trong phiên v2.64, minh họa dùng vòng lặp vô tận sau :mylabel something and something else goto, mylabel Trong phiên v3, bạn thay vòng lặp cách dùng While nhiên điều kiện vòng lặp luôn While = something something else Wend Những giới hạn ngôn ngữ AutoIt V3 ? Dưới trình bày cho bạn số giới hạn ngôn ngữ AutoIt Bạn nên nhớ tất trình bày sau mang tính lý thuyết giới hạn sau tùy thuộc vào tình trạng nhớ máy tính bạn Chiều dài tối đa dòng mã lệnh : 4095 Chiều dài tối đa chuỗi : 2,147,483,647 kí tự Khoảng số thực chấp nhận : 1.7E-308 đến 1.7E+308 với độ xác 15 chữ số Khoảng số nguyên chấp nhận : số nguyên có dấu 64-bit Khoảng số hệ thập lục phân : số nguyên có dấu 32-bit (0X80000000 đến 0X7FFFFFFF) Mảng : số chiều tối đa 64 và/hoặc số phần tử 16 triêu Số cấp độ gọi đệ quy hàm : 5100 cấp Số lượng tối đa biến sử dụng thời điểm : không giới hạn Số lượng hàm người dùng định nghĩa : không giới hạn Số lượng tối đa cửa sổ GUI mà người dùng tạo : không giới hạn Số lượng tối đa control : 65532 Tôi chọn ảnh icon cho tập tinh *.au3 sau biên dịch hay không ? Để làm điều này, bạn phải dùng cửa sổ biên dịch đầy đủ chức AutoIt thay phải nhắp chuột phải vào tập tin mã *.au3 sau chọn Compile Script Bạn xem hướng dẫn sau : - Mở chương trình Autot2Exe v3 cách vào Start -> All Programs -> AutoIt v3 -> Compile Script to exe Giao diện chương trình sau : Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 150 - Nhấn nút Browse mục Source (AutoIt au3 file) để chọn tập tin *.au3 cần biên dịch mục Destination (.exe/.a3x file) để chọn đường dẫn thư mục chứa tập tin *.exe sau biên dịch - Bây bạn thiết lập icon cho tập tin *.exe sau biên dịch cách nhấn nút Browse mục Custom Icom (.ico file) duyệt tìm đến tập tin *.ico bạn Bạn sử dụng icon mẫu AutoIt thư mục Program Files\AutoIt3\Auto2Exe\Icons - Một tùy chọn khác cho phép bạn thiết lập độ nén tập tin *.exe sau biên dịch (đặc biệt bạn có dùng hàm FileInstall tập tin *.au3 bạn) Bạn dùng menu Compression để nén Cũng trình nén tập tin khác, bạn nên chọn Slower tốt Tuy nhiên cấp độ nén mà bạn chọn, tốc độ giải nén chạy tập tin *.exe mà - Nhấn Convert đế tiến hành biên dịch Làm để thoát đoạn mã script chạy tố hợp phím ? Thật dễ dàng Nếu bạn muốn thoát đoạn mã script chạy bạn nhấn tổ hợp phím bạn dùng hàm HotKeySet để thiết lập tổ hợp phím nóng gán với việc gọi hàm thoát người dùng định nghĩa Hàm thoát người dùng định nghĩa nên có từ khóa Exit Ở đoạn code làm cho đoạn mã script chạy thoát cách nhấn tổ hợp phím Ctrl – Alt – x HotKeySet("^!x", "MyExit") ; Rest of Script Func MyExit() Exit EndFunc Tại gặp lỗi dùng dấu ngoặc kép thiết lập chuỗi cho biến? Nếu bạn muốn dùng dấu ngoặc kép bên chuỗi kí tự, bạn phải gõ hai dấu ngoặc kép để thay cho dấu ngoặc kép Ví dụ bạn muốn thiết lập biến chứa chuỗi Le “Vien” Trinh thi bạn làm sau : Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 151 $var = "Le ""Vien"" Trinh" Hoặc bạn dùng dấu nháy đơn để bao quanh chuỗi sau $var = 'Le "Vien" Trinh' Tôi thấy khung nhỏ icon không chứa ảnh tập tin trợ giúp AutoIt phần Example phần giới thiệu hàm ? Khung nhỏ icon mà bạn nói phải nút Open this Script dùng để mở đoạn mã ví dụ phần Example với chương trình SciTE phép bạn chạy thử ví dụ Vấn đề xảy tập tin hhctrl.ocx không đăng kí với hệ thống bị lỗi Bạn cố gắng gõ lệnh regsvr32 hhctrl.ocx cửa sổ cmd coi giải không kiểm tra tập tin hệ thống coi có tồn không 10 Có khác giá trị trả hàm @error ? Thông thường hàm có giá trị trả hàm chứng tỏ hàm gọi thành công Tuy nhiên hàm trả có lỗi thông thường chúng tiến hành gán @error AutoIt định nghĩa tương ứng với lỗi xảy hàm gọi Điều giúp cho người lập trình xác định lỗi xảy để có đoạn code xử lý cho phù hợp 11 Điều xảy dùng hàm Send () với tham số key biến ? Như bạn biết hàm Send() dùng để giúp cho bạn giả lập phím nhấn bàn phím Trong trường hợp bạn cung cấp tham số key tên biến mà nội dung biến có chứa kí tự ! ^ + {SPACE} chuyển dịch đến phím nhấn tương ứng bàn phím tùy thuộc bạn thiết lập tham số flag hàm Xem lại hàm Send() để hiểu rõ thêm vấn đề Nói chung bạn dùng biến chứa chuỗi quy định phím nhấn bàn phím bạn dùng biến tham số key hàm Send() Ví dụ : Sleep(5000) $a = "^a" Send($a); nhấn tổ hợp phím Ctrl - A 12 Trong số hàm cửa sổ có hai tham số mà thường gặp “title” “text” Nó ? Hầu hết cửa sổ xác định để phân biệt với thông qua tiêu đề cửa sổ kết hợp tiêu đề văn cửa sổ Khi bạn sử dụng công cụ AutoIt Window Info giúp bạn lấy thông tin tham số title văn cửa sổ Các tiêu đề cửa sổ bạn nhận biết dễ dàng, chẳng hạn Untitled – Notepad tiêu đề cửa sổ chương trình Notepad Windows Nếu bạn không cung cấp tham số title text hàm cửa sổ kích hoạt dùng Tuy nhiên điều không trường hợp bạn thiết lập tùy chọn WinTitleMatchMode Tùy chọn cho phép bạn thiết lập dẫn cho AutoIt cách dò tìm cửa sổ tương ứng với tham số title cho (xem tài liệu AutoIt Help mục Function Reference -> Misc Management -> AutoItSetOption tìm đến tham số WinTitleMatchMode bảng Option) Lưu ý tham số title text có phân biệt chữ hoa chữ thường Bạn phải xác định rõ ràng trước cung cấp hai tham số Để tránh khỏi phải cung cấp sai tham số title text, bạn dùng công cụ AutoIt Window Info (Start -> All Programs -> AutoIt v3 -> AutoIt Windows Info) nhấn tổ hợp phím Ctrl – C để chép tham số title text cửa sổ mà chương trình cung cấp sau dán hai tham số vào đoạn mã bạn Hầu hết hàm chức liên quan đến cửa sổ AutoIt có hai tham số title text, chẳng hạn hàm WinWaitActive Hàm có công dụng tạm dừng đoạn mã thực thi chạy tiếp có cửa sổ kích hoạt WinWaitActive(“title”, [“text”], [timeout]) Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 152 Tham số title hàm bắt buộc phải có Tham số text timeout hai tham số tùy chọn Trong số hàm tham số text tham số tùy chọn Nếu bạn không muốn sử dụng tham số này, bạn cung cấp “” (chỗi rỗng) Nếu bạn cung cấp tham số chuỗi rỗng cho AutoIt biết văn cửa sổ lợp lệ Thật bạn nên cung cấp thêm tham số text trường hợp hai cửa sổ tạo có tiêu đề Việc cung cấp tham số text cho biết bạn muốn dùng cửa sổ chương trình Giả sử có hai cửa sổ chương trình Notepad đánh số cửa sổ cửa sổ Nếu cung cấp cho hàm có tham số title làm AutoIt biết dùng cửa sổ hàm Lúc tham số text giúp phân biệt hai cửa sổ khác tùy thuộc bạn muốn dùng cửa sổ mà Tham số text văn cửa sổ mà AutoIt phát Nó thường nằm khung chứa văn chẳng hạn hình sau, chuỗi văn “Viet Nam que huong toi” Tuy nhiên tham số text hàm cung cấp văn nằm nút nhấn “Yes”, “No”, “Next” Các hộp thoại có chứa nội dung văn “Are you sure you wish to continue ?” văn nằm control bạn có từ đâu Điều quan trọng bạn phải cần biết tham số title text mà bạn muốn làm việc với cửa sổ Bây bạn mở công cụ AutoIt Windows Info chẳng hạn tìm thông tin title text cửa sổ hình bạn thấy thông tin mà chương trình cung cấp sau thẻ Summary Bây giả sử muốn dùng hai tham số title text cửa sổ để cung cấp tham số hàm WinWaitActive nói gõ sau : WinWaitActive(“Untitled – Notepad”, “Viet Nam que huong toi”) 13 Tại dùng hàm Run() để thực thi tập tin có phần mở Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 153 rộng *.exe mà Còn định dạng khác *.msi *.txt ? Nói chung có số phần mở rộng tập tin tự chạy thôi, chẳng hạn *.exe, *.bat, *.com, *.pif Những định dạng khác *.txt *.msi thường khởi chạy với tiến trình khác Chẳng hạn bạn nhấn đối chuột vào tập tin có phẩn mở rộng *.msi tiến trình hệ thống có thêm tiến trình msiexec.exe giúp thực thi tập tin *.msi bạn Do để khởi chạy tập tin *.msi AutoIt, bạn sử dụng dòng lệnh sau : RunWait(@COMSPEC & “ /c Start myfile.msi”) Ví dụ : RunWait(@COMSPEC & " /c Start E:\Soft\FRNetUserManual-en.msi") ; khởi chạy tập tin FRNetUserManual-en.msi thư mục E:\Soft Bạn dùng hàm ShellExcuteWait để thực thi tập tin bạn Ví dụ ShellExecuteWait("E:\Soft\FRNetUserManual-en.msi") Ghi : - Hàm RunWait có công dụng thực thi tập tin tạm dừng đoạn mã lệnh AutoIt chạy Đoạn mã chương trình chạy tiếp tập tin không chạy - Hàm ShellExcuteWait có công dụng tương tự hàm RunWait nhiên dùng API ShellExecute để khởi chạy tập tin Bạn xem thêm hai hàm tài liệu AutoIt Help để biết rõ 14 Tôi chạy lệnh DOS AutoIt hay không ? Nếu bạn muốn chạy lệnh DOS AutoIt chẳng hạn lệnh “Dir” bạn cần phải chạy thông qua thông dịch lệnh (đó tập tin command.com hay tập tin cmd.exe tùy thuộc vào hệ điều hành bạn) Bạn sử dụng macro @Comspec để biết vị trí xác tập tin thông dịch lệnh Bạn nên dùng hàm RunWait để thực thi lệnh DOS trước thực thi lệnh AutoIt sau lệnh RunWait Dưới ví dụ lệnh Dir RunWait(@COMSPEC & " /c Dir C:\") ; Chú ý có khoảng trắng trước /c 15 Tại in nội dung biến thông qua lệnh “My var is $variable” ? Nếu bạn có biến chẳng hạn $msg bạn dùng lệnh sau để thể nội dung biến không làm việc MsgBox(0, "Example", "My variable is $msg") Nếu bạn dùng lệnh thị chuỗi "My variable is $msg" Nếu bạn muốn in nội dung biến, bạn phải dùng toán tử & để kết nối chuỗi biến sau : MsgBox(0, "Example", "My variable is " & $msg) Ghi : bạn có nhiều biến muốn hiển thị nội dung chuỗi, bạn nên dùng hàm StringFormat() tiện Chẳng hạn bạn muốn chèn nội dung $var1 đến $var5 chuỗi bạn dùng lệnh sau $msg = StringFormat("Var1 is %s, Var2 is %s, Var3 is %s, Var4 is %s, Var5 is %s", $var1, $var2, $var3, $var4, $var5) ; tham số %s để in theo dạng chuỗi cho biến $var1 đến var5 MsgBox(0, "Example", $msg) Hàm StringFormat tương tự cú pháp in chuỗi C dùng hàm printf Chọn trình soạn thảo mã lệnh AutoIt ? Các tập tin AutoIt (*.au3) tập tin dạng văn thông thường bạn chỉnh sửa trình soạn thảo văn Tuy nhiên có nhiều ứng Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 154 dụng miễn phí dạng shareware có nhiều chức việc soạn thảo mã nguồn hỗ trợ tô sáng cú pháp làm cho bật Do việc dùng công cụ để lập trình dễ dàng tránh gây nhầm lẫn Trình soạn thảo mặc định dành cho phần lớn người sử dụng AutoIT SciTE với tính làm bật cú pháp ngôn ngữ tích hợp công cụ khác công cụ kiểm tra cú pháp (syntax checking) Phiên SciTE có cài đặt AutoIT nhiên phiên “lite” mà Bạn vào trang http://www.autoitscript.com/site/autoit-script-editor/ để tải phiên đầy đủ trình soạn thảo SciTE Dưới danh sách trình soạn thảo cho AutoIt khuyến khích sử dụng - TextPad (http://www.textpad.com/) - Crimson Editor (miễn phí - http://www.crimsoneditor.com/) - Source Edit (miễn phí - http://www.sourceedit.com/) - UltraEdit (http://www.ultraedit.com/) Lê Viễn Trình – Đại học An Giang [...]... hiện tại của tôi là Mr Trinh) @AppDataDir C:\Documents and Settings\Mr Trinh\ Application Data @DesktopDir C:\Documents and Settings\Mr Trinh\ Desktop @MyDocumentsDir C:\Documents and Settings\Mr Trinh\ My Documents @FavoritesDir C:\Documents and Settings\Mr Trinh\ Favorites @ProgramsDir C:\Documents and Settings\Mr Trinh\ Start Menu\Programs @StartMenuDir C:\Documents and Settings\Mr Trinh\ Start Menu @StartupDir... tồn tại 16 = dùng chế độ thao tác cho tập tin nhị phân 32 = Dùng Unicode UTF16 Little Endiancho thao tác đọc và ghi 64 = Dùng Unicode UTF16 Big Endiancho thao tác đọc và ghi 128 = Dùng Unicode UTF8 (with BOM) cho thao tác đọc và ghi Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 17 256 = Dùng chế độ Unicode UTF8 (without BOM) cho thao tác đọc và ghi - Hàm này nếu gọi thành... cung cấp tham số key là Default, hàm cũng sẽ xóa luôn section đó - Hàm này nếu gọi thành công sẽ trả về 1 Hàm trả về 0 nếu tập tin ini không tồn tại, hoặc tập tin có thuộc tính chỉ đọc không cho phép ghi Ví dụ : xóa section Configuration trong tập tin wincmd.ini (tập tin cấu hình trong chương trình quản lý tập tin Total Commander) IniDelete("D:\Wincmd.ini", "Configuration", Default) Lê Viễn Trình –... C:\Documents and Settings\Mr Trinh\ Start Menu\Programs\ Startup @UserProfileDir C:\Doucments and Settings\Mr Trinh Macro thư mục khác @ProgramFilesDir C:\Program Files Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 20 @CommonFilesDir C:\Program Files\Common Files @WindowsDir C:\Windows @SystemDir C:\Windows\System32 @TempDir C:\Documents and Settings\Mr Trinh\ Local Settings\Temp... {BACKSPACE} hoặc {BS} {DELETE} hoặc {DEL} BACKSPACE DELETE {UP}  {DOWN}  {LEFT}  {RIGHT}  {HOME} HOME {END} END {ESCAPE} hoặc {ESC} ESC {INSERT} or {INS} INSERT {PGUP} PageUp {PGDN} PageDown {F1} - {F12} {TAB} {PRINTSCREEN} {LWIN} Các phím chức năng từ F1 đến F12 TAB Phím Print Screen Phím Windows nằm bên trái bàn phím Lê Viễn Trình – Đại học An Giang Trang 23 Chuyên đề ngôn ngữ lập trình AutoIt {RWIN}... + b] mod M Trong đó a và b là hai con số nguyên cho trước, số nguyên M là số xấp xỉ hoặc bằng với số nguyên lớn nhất trong máy tính Bạn để ý nếu ta muốn có x(1) thì ta phải có con số x(0), muốn có x(2) thì phải có x(1), muốn có x(k) phải có x(k-1) Vì vậy ta muốn sinh dãy các số ngẫu nhiên, thì ta Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 30 phải cung cấp con số x(0)... number = 4 trong chương trình trên thành các số khác nhau để có được các biểu tượng khác nhau khi tạo shortcut trên màn hình Desktop 38 FileOpen(“filiename”, [mode]) - Công dụng : mở một tập tin văn bản để đọc hoặc ghi hoặc cả hai - filename : là đường dẫn đến tập tin cần đọc và ghi Mode là tham số quy định để mở tập tin Nó có các giá trị sau : 0 = chế độ chỉ đọc (mặc định) 1 = chế độ ghi (ghi vào cuối... IniDelete("D:\Wincmd.ini", "Configuration", Default) Lê Viễn Trình – Đại học An Giang Chuyên đề ngôn ngữ lập trình AutoIt Trang 12 29 IniRead(“filename”, “section”, “key”, “default”) - Công dụng : đọc giá trị value của một khóa key trong một section nào đó của một tập tin INI - Bảng thông số hàm filename section key default Là đường dẫn đến tập tin *.ini Tên section của tập tin *.ini Tên khóa key trong tập tin *.ini... hoạt trong khi gọi hàm Send - title : là tên tiêu đề của cửa sổ Bạn có thể thấy tên tiêu đề của một cửa sổ bất kì bằng cách vào Start > All Programs > AutoIt v3 > AutoIt Window Info Cửa sổ chương trình hiện ra, bạn có thể nhấn giữ trái chuột vào công cụ Finder Tool, sau đó rê vào cửa sổ cần lấy thông tin Title (kết quả sẽ hiển thị trong trường Title nhóm Basic Window Info) Ví dụ : SendKeepActive("Untitled... ] index Tham số tùy chọn Nếu bạn quy định data là một mảng Bạn có thể quy định cho cặp khóa key và value bắt đầu cần ghi Ví dụ trong khai báo $Data[n][2] = [ [ "Key1", "Value1" ], [ “Key2", "Value2" ], [ "Key3", "Value3" ], [ "Keyn", "Valuen" ] ] ở trên Nếu bạn muốn ghi bắt đầu từ khóa key2 – value2, bạn quy định index = 1 Tương tự nếu bạn muốn ghi bắt đầu tử khóa key3 – value3, bạn quy định index

Ngày đăng: 26/05/2016, 23:49

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan