Khả năng tạo GUI trong AutoIt góp phần làm cho nó trở nên phổ biến và tiện dụng hơn
Trong GUI, bạn có thể tạo label, button, checkbox, radiobox, list, progress bar, context menu... nói chung là tất tần tật những j` mà một GUI có thể có.
Để tạo một ứng dụng có GUI, bạn có thể tạo bằng cách tự viết code lấy - Cái này chả khác j` với việc làm đồ họa bằng Pascal. Phải căn ke từng mili trên màn hình, sửa đổi vị trí cho hợp nhãn,... túm lại là rất phiền
Thử ví dụ một GUI cho dễ hình dung nhé:
Code:
; GUI
GuiCreate("Sample GUI", 400,
400)
GuiSetIcon(@SystemDir &
"\mspaint.exe", 0)
; MENU
GuiCtrlCreateMenu("Menu&One")
GuiCtrlCreateMenu("Menu&Two")
GuiCtrlCreateMenu("MenuTh&ree")
GuiCtrlCreateMenu("Menu&Four")
; CONTEXT MENU
$contextMenu = GuiCtrlCreateContextMenu()
GuiCtrlCreateMenuItem("Context Menu",
$contextMenu)
GuiCtrlCreateMenuItem("", $contextMenu)
;separator
GuiCtrlCreateMenuItem("&Properties",
$contextMenu)
; PIC
GuiCtrlCreatePic("logo4.gif",0,0,
169,68)
GuiCtrlCreateLabel("Sample pic", 75, 1, 53,
15)
GuiCtrlSetColor(-1,0xffffff)
; AVI
GuiCtrlCreateAvi("sampleAVI.avi",0, 180, 10,
32, 32, $ACS_AUTOPLAY)
GuiCtrlCreateLabel("Sample avi", 170,
50)
; GUI MESSAGE
LOOP
GuiSetState()
Một cách khác, thuận tiện hơn, đó là sử dụng một soft dạng GUI Builder. Có nhiều GUI Builder dành cho AutoIt, nhưng theo quan điểm cá nhân, có lẽ Koda là khá nhất. Công cụ này có thể tại về từ trang web: http://www.autoitscript.com/fileman/...ormdesign.html
Phiên bản mới nhất là 1.6, cập nhật ngày 19/9.
Koda cho phép bạn dễ dàng tạo GUI chỉ bằng cách drag-and-drop vào form, sau đó sẽ tự động sinh code AutoIt để bạn đưa vào script của mình. Rất rất tiện lợi nếu so sánh với việc code từ đầu bằng tay.
Gắn GUI với code
Có GUI rồi, là đến lúc bạn muốn gắn nó với các mã AutoIt thực thi các lệnh đã viết từ trước.
AutoIt hỗ trợ 2 chế độ tương tác với GUI: OnEvent và MessageLoop. Có thể đảo qua lại 2 chế độ bằng cách dùng lệnh:
Code:
Opt("GUIOnEventMode",
1)
Ở chế độ OnEvent, ta sẽ gắn từng "sự kiện" với một hàm tương ứng. Ví dụ, ta gắn "sự kiện" người dùng click nút Close với hàm Close():
Code:
GUISetOnEvent($GUI_EVENT_CLOSE,
"CLOSE")
Func CLOSE()
MsgBox(0, "GUI
Event", "You clicked CLOSE! Exiting...")
Exit
EndFunc
Ở chế độ MessageLoop, ta có một cách tiếp cận hoàn toàn khác. AutoIt sẽ tạo một vòng lặp vô hạn, liên tục kiểm tra xem có sự kiện nào xảy ra với GUI ko - thông qua một hàm mang tên GUIGetMsg.
Toàn bộ việc gắn code với GUI được thực hiện qua một vòng lặp While:
Code:
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "GUI
Event", "You clicked CLOSE! Exiting...")
ExitLoop
EndSelect
WEnd
Identical(UDS
0 nhận xét