Giáo trình AutoIT

GUI là từ viết tắt của Graphic User Interface – giao diện người dùng bằng đồ họa.

Điều này có lẽ không cần phải nóii nhiều vì bạn đã thấy nó ngay từ khi tiếp xúc với

máy tính, chúng là các biểu tượng, cửa sổ, nút bấm, . . Cách đây vài chục năm,

cái thời mà DOS còn ngự trị trên máy PC thì có lẽ bạn sẽ gặp rắc rối khi phải nhớ

và thao tác một cách chậm chạp với các câu lệnh dài dòng, lắm cú pháp. Còn đến

cái thời mà Windows bành trướng sức mạnh của mình bằng giao diện đồ họa và

các tính năng mới mẻ, thì việc bạn cần làm khi sử dụng máy tính là nhớ các thao

tác. Tất cả các lệnh và hướng dẫn đều có trên màn hình, bạn chỉ cần chọn và nhấn

chuột hoặc phím. Thật là tuyệt cho người sử dụng.

pdf179 trang | Chia sẻ: maiphuongdc | Lượt xem: 5795 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Giáo trình AutoIT, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thư mục 1. DirCopy( “nguồn”, “đích” [, flag]) Copy một thư mục và tất cả các file, các thư mục con bên trong thư mục nguồn đến thư mục đích “nguồn” : chỉ định thư mục cần copy (không có dấu \ ở cuối) “đích” : thư mục sẽ chứa các phần được sao chép đến (không chứa dấu \ ở cuối) flag : (tùy chọn) nếu flag = 0 thì không viết đè các file đã có ở thư mục đích (mặc định) = 1 sẽ viết đè các file đã có 2. DirMove( “nguồn”, “đích” [,flag]) Dời một thư mục được chỉ định trong “nguồn” sang thư mục được chỉ định trong “đích” 3. DirCreate( “path”) Tạo một thư mục Path : đường dẫn đầy đủ và tên của thư mục cần tạo. Ví dụ : “c:\test\folder1” Th. Công : trả về 1 Hỏng : trả về 0 Chú ý : hàm này sẽ tự tạo các thư mục cha (cấp trên) được chỉ định bởi path, nếu như chúng chưa có trên đĩa 4. DirRemove( “path” [, DelAll]) Xóa một thư mục Path : đường dẫn của thư mục cần xóa DelAll : = 0 (mặc định) không xóa các file và thư mục con bên trong = 1 sẽ xóa tất cả các file và thư mục con bên trong (giống như lệnh DelTree trong DOS) 5. DirGetSize( “path” [,flag]) Trả về kích thước (tính theo byte) của thư mục chỉ định Path : thư mục cần lấy kích thước. ví dụ : “c:\windows” Flag : [tùy chọn] trả về kết quả mở rộng hay không = 0 (mặc định) không trả về kết quả mở rộng = 1 trả về một mảng có nội dung sau : $array[0] = Size $array[1] = Tổng số file tìm thấy $array[2] = Tổng số thư mục tìm thấy = 2 không lấy kích thước của các file trong thư mục con Th. Công : trả về kích thước của thư mục (>=0) Hỏng : trả về -1 và gán @error =1 nếu đường dẫn không tồn tại Quản lý tập tin 1. FileCopy( “nguồn”, “đích” [,flag]) Sao chép một hoặc nhiều file từ thư mục “nguồn” sang thư mục “đích” “nguồn” : đường dẫn chứa các file cần copy “đích” : thư mục sẽ chứa các file được sao chép đến Flag : [tùy chọn] nếu flag = 0 (mặc định) không viết đè các file trùng tên = 1 viết đè các file trùng tên trong thư mục “đích” = 8 tự tạo cấu trúc thư mục “đích” nếu như đích đến không tồn tại. Th. Công : trả về 1 Hỏng : trả về 0 Chú ý : nếu bạn gán flag = 9, thì tương đương (1+8). Giá trị này báo cho biết rằng sẽ viết đè nếu có file trùng tên và tự tạo cấu trúc thư mục đích đến. Muốn sao chép nhiều file, ta sử dụng ký tự * để làm giá trị tùy ý. Ví dụ : *.mp3 để chọn tất cả file mp3. 2. FileMove( “file_nguồn” , “nơi đến” [, flag]) Di chuyển một hoặc nhiều file sang thư mục khác File_nguồn : đường dẫn và tên tập tin cần dời đi Nơi đến : đường dẫn để chứa các file cần dời đi. Nếu tham số này nêu ra một tên tập tin khác, thì file_nguồn sau khi dời đến thư mục chỉ định sẽ bị đổi tên. Flag : giống như lệnh FileCopy Th. Công : trả về 1 Hỏng : trả về 0 Chú ý : nếu đường dẫn chứa file nguồn và nơi đến không cùng phân vùng, thì một tác vụ copy và một tác vụ xóa được thực hiện. 3. FileDelete( “path”) Xóa một hoặc nhiều file được chỉ định trong “path” Path : đường dẫn của các file cần xóa Th. Công : trả về 1 Hỏng : trả về 0 nếu file không tồn tại hoặc không thể xóa Chú ý : nếu muốn xóa tất cả file trong một thư mục, sử dụng mặt nạ * . * để đại diện cho tất cả các file. Để ý rằng, một vài file có thiết lập thuộc tính sẽ không thể xóa được. 4. FileRecycle( “nguồn”) Đưa một file hoặc thư mục vào thùng rác Nguồn : đường dẫn và tên file hoặc thư mục cần chuyển vào thùng rác. Sử dụng * để đại diện nhiều file. Th. Công : trả về 1 Hỏng : trả về 0 Chú ý : để xóa một thư mục thì không sử dụng ký tự “ \” ở cuối đường dẫn chỉ định trong “nguồn” 5. FileRecycleEmpty( [“ổ đĩa”]) Làm rỗng thùng rác [ổ đĩa] : tham số này tùy chọn, cho biết cần đổ thùng rác ở ổ đĩa nào. Nếu bỏ qua sẽ đổ bỏ ở tất cả ổ đĩa. Th. Công : trả về 1 Hỏng : trả về 0 Chú ý : để hàm này làm việc máy bạn phải IE từ phiên bản 4 trở lên. 6. FileGetSize( “file_name”) Trả về kích thước của tập tin (tính theo byte) File_name : đường dẫn và tên của file cần lấy Th. Công : trả về kích thước của file (byte) Hỏng : trả về 0 và gán @error = 1 Chú ý : lệnh này không làm việc với thư mục. Lấy kết quả chia cho 1024 để có được đơn vị tính theo kilobyte, chia cho 1048576 để có được kích thước ở megabyte. 7. FileExist( “path”) Kiểm tra xem file hoặc thư mục được nêu trong path có tồn tại hay không Path : file hoặc thư mục cần kiểm tra Th. Công : trả về 1 Hỏng : trả về 0 nếu đường dẫn chứa trong path không tồn tại Chú ý : hàm này cũng sẽ trả về 0 nếu bạn chỉ định một ổ đĩa mềm mà lại không có chứa đĩa 8. FileInstall( “source”, “dest” [, flag]) Bao gồm và cài đặt một file với đoạn mã đã biên dịch Source : đường dẫn nguồn của những file cần dịch. Đường dẫn này phải là một chuỗi rõ ràng, không được phép là một biến. Có thể sử dụng đường dẫn liên quan như .\ hoặc ..\ Dest : đường dẫn đích đến của các file cần extract. Nếu muốn chỉ định một thư mục thì dùng dấu \ ở cuỗi. Cho phép dest là biến số Flag : cho biết có chép đè khi gặp file trùng tên hay không. = 0 (mặc định) : không viết đè = 1 : viết đè Chú ý : hàm này được thiế kế là để gom các file vào trong một đoạn mã đã biên dịch. Những file được gom vào có thể được extract (xả nén) trong quá trình chạy của file script đã biên dịch và lệnh này được thực thi. Bạn có thể hình dung là nếu bạn đưa một file ảnh vào trong file script thì kích thước của file script sau khi biên dịch sẽ tăng lên. Một điều nữa là các thông tin gốc về thời gian tạo, chỉnh sửa cũng sẽ được giữ lại khi cài đặt 9. FileOpenDialog ( "title", "init dir", "filter" [, options [, "def name" [, hwnd]]] ) Gọi hộp thoại Open File (hộp thoại xuất hiện khi bạn chọn lệnh File>Open.. trong các ứng dụng) Title : tiêu đề của hộp thoại khi xuất hiện Init dir : thư mục mặc định để mở khi hộp thoại vừa xuất hiện Filter : chỉ định một hay nhiều loại tập tin cần mở. ví dụ như : “All (*.*)” hoặc “Text files (*.txt)” hoặc “All (*.*) | Text files (*.txt)” Options : [tùy chọn] cho phép mở rộng một vài điều kiện, sử dụng giá trị sau : 1 = file phải tồn tại (nếu người dùng gõ tên file) 2 = đường dẫn phải tồn tại (nếu gõ đường dẫn) 4 = cho phép chọn nhiều file 8 = nhắc nhở tạo file mới nếu file không tồn tại Def name : tên đề nghị cho người dùng. Mặc định là rỗng (“”) Hwnd : handle của cửa sổ được xem như là cửa sổ mẹ của hộp thoại Open File Th. Công : trả về đường dẫn đầy đủ và tên của tập tin được chọn. Nếu có nhiều file được chọn thì trả về chuỗi có dạng như sau : “thư mục | file1 | file2 |…” Hỏng : gán @error = 1 Chú ý : bộ lọc phần mở rộng và kết quả trả về cho nhiều file được chọn, đều được ngăn cách mỗi phần bởi dấu gạch đứng “|”. Bạn cũng có thể kết hợp các giá trị của Options lại với nhau để có nhiều lựa chọn. ví dụ : 1+4 để vừa có lựa chọn là “file phải tồn tại” và “ cho phép chọn nhiều file” 10. FileSaveDialog ( "title", "init dir", "filter" [, options [, "def name" [, hwnd]]] ) Gọi hộp thoại save file (hộp thoại xuất hiện khi bạn gọi File > Save) Title : tiêu đề của hộp thoại Init dir : thư mục mặc định để mở khi hộp thoại vừa xuất hiện Filter : chỉ định một hay nhiều loại tập tin cần mở Options : [tùy chọn] 2 = đường dẫn phải tồn tại (nếu người dùng gõ đường dẫn kết thúc vơi dấu \ ) 16 = nhắc nhở việc ghi đè file trùng tên Def name : tên đề nghj cho ng dùng. Mặc định là rỗng “ “ Hwnd : handle của cửa sổ được xem như là cửa sổ mẹ của hộp thoại Save File Th. Công : trả về đường dẫn đầy đủ và tên của tập tin được chọn. Nếu có nhiều file được chọn thì trả về chuỗi có dạng như sau : “thư mục | file1 | file2 |…” Hỏng : gán @error = 1 Chú ý : bộ lọc phần mở rộng và kết quả trả về cho nhiều file được chọn, đều được ngăn cách mỗi phần bởi dấu gạch đứng “|”. 11. FileSelectFolder ( "dialog text", "root dir" [, flag [, "initial dir" [, hwnd]]] ) Gọi hộp thoại Browse For Folder (hộp thoại chỉ hiện cây thư mục để chọn) Dialog text : văn bản sẽ hiển thị trên hộp thoại, cho phép bạn nhắc nhở chức năng Root dir : thư mục gốc của cây tập tin trong GUI. Sử dụng “ “ để chọn Desktop. Flag : [tùy chọn] cho phép thêm một vài một lựa chọn : 1 = hiển thị nút Create Folder (đòi hỏi có IE6 trở lên) 2 = sử dụng Kiểu hộp thoại mới (New Dialog style, đòi hỏi IE6 trở lên) 4 = hiển thị một control Edit để gõ tên thư mục mới Initial dir : Thư mục mặc định sẽ chọn khi hộp thoại xuất hiện. Sử dụng “ “ để chọn Desktop Th. Công : trả về đường dẫn đầy đủ của thư mục được chọn Hỏng : trả về chuỗi rỗng “ “ và gán @error = 1 nếu người dùng đóng (cancel) cửa sổ. Quản lý ổ đĩa 1. DriveGetDrive( "type") Liệt kê tất cả các ổ đĩa có trên hệ thống Type : loại ổ đĩa cần tìm : "ALL", "CDROM", "REMOVABLE", "FIXED", "NETWORK", " RAMDISK" hoặc "UNKNOWN" Th. Công : trả về một mảng, mỗi phần tử là một chuỗi chứa ký tự ổ đĩa được tìm thấy (ví dụ như C: ). Phần tử đầu tiên trong mảng (có chỉ mục 0) sẽ cho biết tổng số ổ đĩa được tìm thấy. Hỏng : trả về chuỗi rỗng và gán @error = 1 2. DriveGetLabel( "path") Cho biết tên của ổ đĩa Path : ổ đĩa cần lấy tên. Ví dụ : "C:\", "e:\" Th. Công : trả về chuỗi là tên của ổ đĩa Hỏng : gán @error = 1 3. DriveGetSerial( "path") Cho biết số serial của ổ đĩa Path : ổ đĩa cần lấy số serial Th. Công : trả về một chuỗi là số serial Hỏng : gán @error = 1 4. DriveSetLabel( "path", "label") Gán nhãn (tên) cho ổ đĩa Path : ổ đĩa cần gán nhãn (như "c:\") Label : nhãn mới để gán cho ổ đĩa (tối đa 11 ký tự) Th. Công : trả về 1 Hỏng : trả về 0 5. DriveSpaceFree( "path") Lấy kích thước còn trống của ổ đĩa Path : ổ đĩa cần lấy. ví dụ : "C:\" Th. Công : trả về kích thước còn trống của ổ đĩa (tính theo megabyte) Hỏng : trả về 0 và gán @error = 1 6. DriveSpaceTotal( "path") Cho biết tổng dung lượng của ổ đĩa Path : ổ đĩa cần lấy. ví dụ : "C:\" Th. Công : trả về tổng dung lượng của ổ đĩa (tính theo megabyte) Hỏng : gán @error = 1 7. DriveStatus( "path") Trả về trạng thái của ổ đĩa Path : ổ đĩa cần lấy trạng thái Trả về một trong các giá trị sau : "UNKNOWN" : ổ đĩa có thể không được định dạng "READY" : ổ đĩa đang sẵn sàng làm việc "NOTREADY" : ổ đĩa mềm hoặc CD không có đĩa "INVALID" : ổ đĩa có thể không tồn tại GIỚI THIỆU VỀ GUI GUI là từ viết tắt của Graphic User Interface – giao diện người dùng bằng đồ họa. Điều này có lẽ không cần phải nóii nhiều vì bạn đã thấy nó ngay từ khi tiếp xúc với máy tính, chúng là các biểu tượng, cửa sổ, nút bấm, ... . Cách đây vài chục năm, cái thời mà DOS còn ngự trị trên máy PC thì có lẽ bạn sẽ gặp rắc rối khi phải nhớ và thao tác một cách chậm chạp với các câu lệnh dài dòng, lắm cú pháp. Còn đến cái thời mà Windows bành trướng sức mạnh của mình bằng giao diện đồ họa và các tính năng mới mẻ, thì việc bạn cần làm khi sử dụng máy tính là nhớ các thao tác. Tất cả các lệnh và hướng dẫn đều có trên màn hình, bạn chỉ cần chọn và nhấn chuột hoặc phím. Thật là tuyệt cho người sử dụng. Còn đối với người lập trình thì sao ? Khi mới bắt đầu tiếp xúc với việc lập trình ứng dụng trong windows , sẽ không ít người trong chúng ta ngán ngẫm . Tại sao? Đơn giản là vì nó có quá nhiều hàm và cách tổ chức cấu trúc thì chẳng dễ nhớ tí nào. Nếu bạn đã từng học qua C/C++ thì bạn sẽ hiểu cái cảm giác đó. Thế AutoIt sẽ giúp cho công việc của ta dễ dàng hơn à ? Xin thưa là đúng như vậy. Mặc dù bên trong Windows đã được xây dựng sẵn một thư viện đồ sộ cho việc lập trình các ứng dụng có giao diện , nhưng cú pháp của nó quả là rắc rối . Và chúng ta – những người sử dụng AutoIt có thể khai thác thư viện này theo một cách đơn giản nhất mà AutoIt đã hỗ trợ. Sự hỗ trợ mà AutoIt mang đến cho tôi và bạn chính là các hàm để tạo nên cửa sổ , các thành phần con trên nó (ta gọi là các control ) và những thứ liên quan đã được thay thế với cú pháp ngắn gọn, đơn giản và sáng sủa hơn. Đến đây bạn có thể yên tâm rằng , học AutoIt sẽ không hề vô dụng. Tuy nhiên mọi thứ sẽ không phải là màu hồng như bạn nghĩ vì bạn sẽ tốn khá nhiều thời gian để tìm hiểu về những gì AutoIt đang có. Trước khi soạn tài liệu này , tôi đã phải tốn đến mấy tháng tìm hiểu một cách "lười biếng" về ngôn ngữ này. Hy vọng rằng các bạn sẽ không phải tốn quá nhiều thời gian như tôi. Nói vòng vo như thế cũng đủ rồi , bây giờ là nói vào nội dung chính. Các control mà AutoIt hỗ trợ cho ta bao gồm : Label Một mẫu văn bản đơn giản Button Nút bấm Input Vùng soạn thảo văn bản chỉ có một dòng Edit Vùng soạn thảo văn bản có nhiều dòng Checkbox Một ô vuông cho phép bạn đánh dấu hoặc không đánh dấu Radio Một nút tròn cho phép bạn chỉ được chọn một nút trong số nhiều nút Combo Một danh sách có nút bấm để sổ xuống List Một danh sách Date Một hộp chọn ngày Pic Vùng để hiển thị ảnh Icon Vùng để hiển thị Icon Progress Thanh tiến trình Tab Một nhóm các control sẽ được chứa trong tab UpDown Một control cho phép đính kèm cạnh bên control input Avi Hiển thị đoạn clip AVI Menu Menu chức năng trên cửa sổ ContextMenu Một menu ngữ cảnh sẽ xuất hiện khi bạn nhấn chuột phải (hoặc trái, tùy vị trí) TreeView Một cây phân nhánh như trong Windows Explorer Slider Một thanh trượt như thanh điều khiển âm lượng ListView Control hiển thị thông tin của cột trong listview ListViewItem Control hiển thị các mục trong listview Graphic Control để hiển thị đồ họa được vẽ với hàm GUICtrlSetGraphic. Dummy Control dummny (bù nhìn) Đây là hình ảnh về các control mà ta có thể tạo lập được Error! Trước khi tìm hiểu về cách thức tạo một GUI , ở đây xin giới thiệu sơ lược với các bạn các hàm cơ bản mà ta sẽ thường sử dụng để thao tác với một ứng dụng có cửa sổ. Hàm Giải thích GUICreate Tạo một cửa sổ GUICtrlCreate... Tạo ra các control khác nhau trên cửa sổ (dấu …. sẽ được thay bằng tên cụ thể) GUISetState Hiển thị hoặc ẩn cửa sổ GUIGetMsg Lấy các thông tin về các sự kiện diễn ra trên gui GUICtrlRead Đọc dữ liệu từ control GUICtrlSetData Gán/Thay đổi dữ liệu trên control GUICtrlSet... Thay đổi các lựa chọn trên control (ví dụ như màu sắc , style,…) TẠO GIAO DIỆN NGƯỜI DÙNG Phần này sẽ hướng dẫn bạn cách thức để tạo nên một ứng dụng có giao diện hẳn hoi. Một điều quan trọng mà bạn cần nhớ là một ứng dụng trên windows không nhất thiết phải có giao diện (ví dụ như các dịch vụ của win) và các thao tác xử lý đối với một ứng dụng trên Windows là tập trung vào xử lý sự kiện xảy ra trên cửa sổ của ứng dụng đó. Ở đây, các bạn cần nắm được vài chú ý sau : - Control ID : nó thực chất là một số nguyên (>0) đại diện cho control. Thông thường ta không biết số này là bao nhiêu (vì do hệ điều hành cung cấp khi chạy ứng dụng) và khi tạo ra một control ta thường gán nó vào một biến, biến đó là tên đại diện, sẽ chứa ID của control đó. Do trên cửa sổ của bạn sẽ có nhiều thành phần, mỗi thành phần cần phải có một cái tên để quản lý và khai thác. Ví dụ bạn có hai nút bấm trên cửa sổ thì bạn phải đặt tên cho nút thứ nhất là btn1 (hoặc btnOK) và nút thứ hai là btn2 (btnCancel) chẳng hạn. Để khi người dùng nhấp chuột thì ta biết rằng nút bấm nào vừa được tác động. - Control ID : là một số nguyên duy nhất, không bao giờ có sự trùng lặp (do bộ nhớ được phân chia để chứa các thành phần ). - Handle : cái từ này tôi không biết nên dịch thế nào cho đúng nghĩa nhưng có thể tạm hiểu rằng , nó là một giá trị đặc biệt được tạo ra và gán vào một cửa sổ khi cửa sổ đó được tạo. Thông thường , handle chỉ được dùng cho cửa sổ , ít khi dùng cho control. Khi nói đến handle , người ta nghĩ ngay đến định danh của một cửa sổ (hay GUI). Và handle là một dạng dữ liệu đặc biệt , nó không phải chuỗi hay số. Để tạo được một ứng dụng có giao diện đồ họa , thì thành phần bạn cần tạo đầu tiên chính là một cửa sổ. Sau khi có cửa sổ thì chúng ta sẽ tạo tiếp các thành phần con trên nó (các control). Muốn tạo được cửa sổ ta cần gọi đến hàm GuiCreate. Có cú pháp hoàn chỉnh như sau : GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] ) Các phần được rào trong cặp dấu ngoặc vuông [ ] là tùy chọn, có thể có hoặc không. Trong đó , Các tham số Title : là tiêu đề của cửa sổ (văn bản này sẽ hiển thị trên thanh tiêu đề khi cửa sổ xuất hiện). Width : độ rộng của cửa sổ (tính theo pixel) Heigh : chiều cao của cửa sổ (tính theo pixel) Left : vị trí bên trái của màn hình (tương ứng với tọa độ x). Gán -1 là canh giữa màn hình. Nếu đã gán giá trị cho left, thì Top cũng phải được gán giá trị. Top : vị trí phía trên của màn hình (tương ứng với tọa độ y). Gán -1 đề canh giữa màn hình Style : xác định style (kiểu) cửa sổ. Xem trong GUI Control Styles Appendix của file help. Sử dụng -1 để dùng style mặc định, bao gồm các giá trị sau : $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU. Các style $WS_CLIPSIBLINGS, và $WS_SYSMENU luôn được sử dụng nếu như style $WS_MAXIMIZEBOX hoặc $WS_SIZEBOX được chỉ định. exStyle : xác định style mở rộng cho cửa sổ (xem bảng Extended Style Table bên dưới ). Mặc định là -1. Parent : handle của cửa sổ đã được tạo ra trước đó. Cửa sổ sắp tạo ra sẽ là con của cửa sổ có handle vừa gán. Trả về Thành công : hàm trả về handle của cửa sổ Hỏng : hàm trả về 0 và gán @error = 1 Chú ý Hai tham số Left và Top sẽ xác định vị trí xuất hiện của hộp thoại trên màn hình. Điểm giao nhau của hai tham số này chính là góc trái trên của hộp thoại. Theo mặc định, các cửa sổ được tạo ra sẽ không thể có chức năng resize (dùng chuột để kéo lớn hoặc thu nhỏ kích thước của cửa sổ) và phóng lớn cực đại (maximize). Vì thế, khi bạn muốn sử dụng bất kỳ tính năng nào ở trên thì có thể thêm vào tham số style các giá trị WS_SIZEBOX hoặc WS_MAXIMIZEBOX. Tuy nhiên, khi sử dụng WS_SIZEBOX thì các style WS_MINIMIZEBOX, WS_CAPTION, WS_POPUP, WS_SYSMENU lại không được thiết lập. Cách tốt nhất để tạo nên một hộp thoại có thể resize là sử dụng WS_OVERLAPPEDWINDOW. Khi dùng $WS_EX_MDICHILD cho tham số style mở rộng , thì vị trí cửa sổ là vị trí liên hệ đến vùng client của cửa sổ bố-mẹ (parent). Tham số $WS_EX_LAYERED cho phép có một bức ảnh trong suốt bên trên ảnh nền đã định nghĩa trong cửa sổ parent. Để kết hợp các style do bạn chỉ định với style mặc định, ta sử dụng : BitOr($GUI_SS_DEFAULT_GUI, newstyle,...). Muốn sử dụng được các hằng số liên quan đến GUICreate, bạn cần gọi #include Bảng các style mở rộng (Extended style table) Style mở rộng Kết quả $WS_EX_ACCEPTFILES Cho phép một control edit hoặc input được tạo trên GUI có thể nhận được tên của file được kéo và thả vào. Control cũng phải được gán trạng thái $GUI_DROPACCEPTED bằng hàm GUICtrlSetState. Đối vớ các control khác, thông tin của việc drag&drop có thể được truy lại với @GUI_DRAGID, @GUI_DRAGFILE, @GUIDROPID. $WS_EX_APPWINDOW Yêu cầu cửa sổ luôn nổi ở-trên thanh taskbar khi nó xuất hiện. $WS_EX_CLIENTEDGE Cửa sổ sẽ được bao với viền bị trũng xuống (sunken). $WS_EX_CONTEXTHELP Bao gồm một dấu chấm hỏi ở thanh tiêu đề của cửa sổ. Không dùng được với WS_MAXIMIZEBOX hoặc WS_MINIMIZEBOX. $WS_EX_DLGMODALFRAME Tạo một cửa sổ có viền lớn gấp đôi bình thường. Tùy chọn, cửa sổ có thể được tạo với một thanh tiêu đề bằng cách chỉ định WS_CAPTION trong tham số style $WS_EX_MDICHILD Tạo một cửa sổ con bên trong cửa sổ bố-mẹ (simulation not real MDI). $WS_EX_OVERLAPPEDWINDOW Kết hợp style WS_EX_CLIENTEDGE và WS_EX_WINDOWEDGE $WS_EX_STATICEDGE Tạo một cửa sổ có viền chỉ bằng một phần ba so với bình thường , style này được sử dụng cho các mục không chấp nhận viêc nhập liệu của người dùng $WS_EX_TOPMOST GUI được tạo với style này sẽ luôn ở trên các cửa sổ khác, thậm chí khi GUI không được kích hoạt. $WS_EX_TRANSPARENT Cửa sổ sẽ xuất hiện trong suốt bởi vì các bit của những cửa sổ liên quan bên dưới đã được vẽ lại $WS_EX_TOOLWINDOW Tạo ra một cửa sổ chứa công cụ, ta còn gọi là floating toolbar (thanh công cụ trôi nổi). Cửa sổ chứa công cụ sẽ có một thanh tiêu đề và font chữ nhỏ hơn cửa sổ bình thường. Cứa sổ này sẽ không xuất hiện trong taskbar hoặc trong hộp thoại khi bạn Alt- Tab. Nếu cửa sổ chứa công cụ có một menu hệ thống, icon của nó sẽ không hiển thị trên thanh tiêu đề. Tuy nhiên, bạn có thể ép chúng hiển thị bằng cách gõ phím Alt- Space. $WS_EX_WINDOWEDGE Tạo cửa sổ được bao với viền nổi $WS_EX_LAYERED Tạo một cửa sổ được xếp thành lớp (layer). Chú ý rằng cái này không sử dụng được cho các cửa sổ con Ví dụ 1 Đoạn mã này tạo ra một cửa sổ, trên đó có chứa một label và một button. Khi bạn nhấn vào Button sẽ tạo ra một số ngẫu nhiên và hiển thị ở label. #include $gui = GUICreate("Random number", 200, 100) ;tạo gui chính ;tạo nhãn sẽ hiển thị số vừa tạo $label_num = GUICtrlCreateLabel("000", 20, 20, 160, 30) ;gán label này dùng font Arial, size là 14 GUICtrlSetFont(-1, 14, 400, 0, "Arial") ;tạo nút cấp phát số ngẫu nhiên $button_gen = GUICtrlCreateButton("Generate random number", 20, 50, 160, 30) GUISetState() ; hiển thị gui vừa tạo lên màn hình while 1 ; vòng lặp xử lý thông điệp $msg = GUIGetMsg() ;ghi nhận sự kiện xảy ra trên gui Switch $msg Case $GUI_EVENT_CLOSE ;nếu nhấn nút Close hoặc Alt-F4 ExitLoop ; thì thoát Case $button_gen ;nếu nhấn nút cấp phát thì tạo số ngẫu nhiên $num = Int(Random(-10^9, 10^9)) ; gán vào label để hiển thị số vừa cấp phát GUICtrlSetData($label_num, $num) EndSwitch WEnd Ví dụ 2 Đoạn mã này minh họa việc tạo cửa sổ con có nền trong suốt bằng một ảnh gif. #include #include Example( ) Func Example2() Local $gui, $background, $pic, $basti_stay, $msg Local $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\A utoIt v3\AutoIt", "InstallDir") & "\Examples\GUI\logo4.gif" $gui = GUICreate("Background", 400, 100) ; background picture $background = GUICtrlCreatePic(@SystemDir & "\oobe\images\mslogo.jpg", 0, 0, 400, 100) GUISetState(@SW_SHOW) ; transparent MDI child window $pic = GUICreate("", 169, 68, 0, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $gui) ; transparent pic $basti_stay = GUICtrlCreatePic($sFile, 0, 0, 169, 68) GUISetState(@SW_SHOW) Do $msg = GUIGetMsg() Until $msg = $GUI_EVENT_CLOSE EndFunc GUIDelete Xóa bỏ một cửa sổ GUI và tất cả các control trên đó GUIDelete ( [winhandle] ) Các tham số Winhandle [tùy chọn] handle của cửa sổ cần xóa , được trả về từ hàm GUICreate (mặc định là GUI đã dùng trước đó.) Trả về Th. Công : Returns 1. Hỏng : Returns 0. Chú ý None. GUIGetCursorInfo Lấy thông tin về vị trí của con trỏ chuột (tính theo cửa sổ GUI) GUIGetCursorInfo ( [winhandle] ) Các tham số winhandle [tùy chọn] handle của cửa sổ muốn sử dụng. Nếu bỏ quên thì cửa sổ hiện hành được sử dụng Giá trị trả về Th. Công : Trả về một mảng có 5 phần tử , chứa các thông tin sau : $array[0] = tọa độ X (chiều ngang) $array[1] = tọa độ Y (chiều dọc) $array[2] = nút thứ nhất của chuột được nhấn (thường là nút trái , 1 là có nhấn, 0 nếu không nhấn) $array[3] = nút thứ hai của chuột được nhấn (thường là nút phải , 1 là có nhấn, 0 nếu không nhấn) $array[4] = ID của control mà con trỏ chuột đang bay-lượn ở trên. Cho 0 nếu không có control Hỏng : Trả về 0 và gán @error=1 Chú ý Tọa độ của con trỏ chuột được tính theo tọa độ bên trong GUI , chứ không phải tính theo tọa độ màn hình Nếu tham số "winhandle" được dùng thì cửa sổ được chỉ định sẽ trở thành cửa -sổ-hiện-hành mới. Việc lấy thông tin về vị trí của con trỏ chuột chỉ thành công khi dùng trên một cửa sổ được tạo ra bằng hàm GUICreate. Khi không có winhandle thì hàm chỉ thành công khi cửa sổ GUI được kích hoạt Định danh của ListViewItem hoặc TreeViewItem sẽ không bao giờ được trả về , chỉ trả về ID của ListView hoặc TreeView mà thôi. GUIGetMsg Lấy và trả về các sự kiện nào đã xảy trên GUI GUIGetMsg ( [advanced] ) Các tham số Advanced [tùy chọn] trả về thông tin mở rộng chứa trong một mảng 0 = (default) trả về một sự kiện đơn lẻ. 1 = trả về một mảng chứa sự kiện và thông tin mở rộng Giá trị trả về Trả về một giá trị đơn hoặc một mảng tùy vào tham số Advanced Sự kiện sẽ trả về định danh (ID) của control đã gởi đi thông điệp , hoặc nó là một sự kiện đặc biệt (như là đóng hoặc thu nhỏ cửa sổ ,...). Hoặc trả về 0 nếu không có sự kiện nào xảy ra. ID của sự kiện ID của control đã gởi đi sự kiện 0 Không có sự kiện $GUI_EVENT_CLOSE Hộp thoại bị đóng (click nút close hoặc menu hệ thống hoặc một nút do ta tạo) $GUI_EVENT_MINIMIZE Hộp thoại bị thu nhỏ (minimize) bởi click nút bấm từ thanh tiêu đề $GUI_EVENT_RESTORE Hộp thoại được phục hồi do nhấn nút ở thanh taskbar $GUI_EVENT_MAXIMIZE Hộp thoại được phóng lớn cực đại do nhấn nút maximize $GUI_EVENT_MOUSEMOVE Con trỏ chuộ

Các file đính kèm theo tài liệu này:

  • pdfautoit_6079.pdf
Tài liệu liên quan