$val = $doubled
Next
Exit
Func MyDouble($value)
$value = $value * 2
Return $value
EndFunc
Ghi chú
mỗi câu lệnh được viết trên 1 dòng và không cần kí hiệu kết thúc câu lệnh, nhưng
nếu 1 câu lệnh quá dài cần viết trên nhiều dòng để dễ nhìn thì ta có thể sử dụng dấu
[_] như sau:
MsgBox (4096, "", "dòng này khá dài dòng, vì vậy tôi" & _
"sẽ viết nó trên 2 dòng")
để viết ghi chú trên 1 dòng ta dùng dấu [;] tất cả kí tự sau dấu [;] trên 1 dòng sẽ đc
coi là ghi chú và ko đc biên dịch trong khi chạy
; Tiếp theo script sẽ tạm dừng 5 giây
Sleep (5000) ; tạm dừng 5000 mini giây
còn nếu bạn muốn viết ghi chú trên nhiều dòng thì dùng #cs #ce để viết ghi chú
trên nhiều dòng tất cả kí tự sau dấu giữa chúng sẽ đc coi là ghi chú và ko đc biên
dịch trong khi chạy
#cs
đây là dòng ghi chú 1
ghi chú 2
ghi chu 3
#ce
Sleep (5000) ;tạm dừng 5000 mini giây
Bạn có thể kết hợp underscore và chấm phẩy để đưa ý kiến về tuyến đường và vẫn
còn có một tuyên bố dài span trên dòng tiếp theo.
dim $b_ ; This _ is not a continuation character, nor is the next one
dim $k_
Dim $a[8][2] = [ _
[ "Word", 4 ], _ ; Comment 1
[ "Test", 3 ], _
[ "pi", 3.14159], _ ; Associate the name with the value
[ "e", 2.718281828465], _ ; Same here
[ "test;1;2;3", 123], _
[ ';', Asc(';') ], _ ; This comment is removed, but the strings remain.
["", 0] ]
GUI (Giao diện đồ họa)
AutoIt có khả năng tạo giao diện đồ họa tương tác với người dùng (GUIs) mà có
các cửa sổ và điều khiển.
khái niệm GUI
GUI bao gồm một hoặc nhiều cửa sổ và mỗi cửa sổ chứa một hoặc nhiều
hơn Control
Control GUI
Tất cả các người dùng đã quen với các Control - bạn nhấp chuột vào bất cứ thứ gì
trên hoặc tương tác có trong một cửa sổ là một loại hình Control. Các loại kiểm
soát có thể được tạo ra với AutoIt được liệt kê dưới đây:
Label
(Nhãn)
Một ô để hiển thị văn bản
Button
(Nút)
Một nút bấm đơn giản.
Input
M
ộ
t dòng nh
ậ
p vào m
ộ
t chu
ỗ
i kí t
ự
.
Edit
Môt ô đ
ể
nh
ậ
p vào văn b
ả
n.
CheckBox
M
ộ
t h
ộ
p có th
ể
đư
ợ
c "ki
ể
m tra" hay "b
ỏ
".
Radio
M
ộ
t b
ộ
các vòng tròn nút
-
ch
ỉ
có th
ể
là m
ộ
t
Combo
M
ộ
t danh sách v
ớ
i m
ộ
t dòng
đc ch
ọ
n.
List
M
ộ
t danh sách.
Date
Ch
ọ
n
ngày.
Pic
M
ộ
t b
ứ
c tranh.
Icon
M
ộ
t bi
ể
u tư
ợ
ng.
Progress
M
ộ
t ti
ế
n trình.
Tab
M
ộ
t nhóm
control đư
ợ
c ch
ứ
a trong các tab.
UpDown
Một kiểm soát có thể được thêm vào đầu vào các
control.
Avi
Hi
ể
n th
ị
m
ộ
t đ
ị
nh d
ạ
ng AVI clip.
Menu
M
ộ
t trình
đơn trên phía trên cùng c
ủ
a c
ử
a s
ổ
.
ContextMenu
Một trình đơn xuất hiện khi bạn phải bấm chuột phải.
TreeView
M
ộ
t ki
ể
m soát theo mô hình cây.
Slider
Thanh kéo đ
ể
ch
ọ
n
ListView
hi
ệ
n th
ị
như listbox nhưng có th
ể
chia thành nhi
ề
u c
ộ
t
ListViewItem
Một control hiển thị mục trong control listview.
Graphic
đ
ể
v
ẽ
Dummy
Dummy
Dưới đây là một ví dụ của một cửa sổ GUI có chứa rất nhiều các control có sẵn.
Như bạn có thể nhìn thấy nó có thể tạo ra rất chi tiết GUIs!
Control được tạo ra với các hàm GUICtrlCreate . Khi một control được tạo
ra thì ControlID được trả lại. điều quan trọng cần lưu ý về ControlID là:
controlID là một số dương (có nghĩa là, một số lớn hơn 0)
Mỗi controlID là duy nhất - ngay cả khi có nhiều cửa sổ
controlID thực sự là cùng một giá trị giống như là ControlID đc đọc bởi AutoIt
Window Info Tool .
Chức năng cơ bản GUI
Ch
ứ
c năng
Gi
ả
i thích
GUICreate
T
ạ
o m
ộ
t c
ử
a s
ổ
.
GUICtrlCreate
T
ạ
o control khác nhau trong m
ộ
t c
ử
a s
ổ
.
GUISetState
Hi
ể
n th
ị
ho
ặ
c
ẩ
n c
ử
a s
ổ
.
GUIGetMsg
trả lại sự kiện sảy ra trên GUI (khi bạn click vào control thì hàm
sẽ trả lại controlID)
GUICtrlRead
Đ
ọ
c các d
ữ
li
ệ
u
cho m
ộ
t Control.
GUICtrlSetData
Thi
ế
t l
ậ
p / thay đ
ổ
i các
d
ữ
li
ệ
u
cho m
ộ
t Control.
GUICtrlSet
Thay đổi các tùy chọn, thuộc tính của control (màu sắc, style,
vv)
Vd tạo ra 1 cửa sổ với kích thước 200, 100 và có tiêu đề là Hello world
khi 1 cửa sổ đc tạo ra thì nó đc ẩn vậy ta cần hiện thị nó lên
#include <GUIConstantsEx.au3>
GUICreate("Hello World", 200, 100)
GUISetState(@SW_SHOW)
Sleep(2000)
Nếu bạn chạy tập lệnh trên, bạn sẽ nhìn thấy một cửa sổ và sau 2 giây nó tự
đóng lại . Không phải rất thú vị hãy thêm vào một số văn bản và một nút bấm
OK. Các văn bản sẽ được thêm tại vị trí 30, 10 và tại các nút ở vị trí 70, 50 có độ
rộng 60 pixel.
#include <GUIConstantsEx.au3>
GUICreate("Hello World", 200, 100)
GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
GUICtrlCreateButton("OK", 70, 50, 60)
GUISetState(@SW_SHOW)
Sleep(2000)
Đó là khá tốt, nhưng làm thế nào để chúng tôi làm cho GUI phản ứng đối với
chúng tôi nhấp chuột vào nút? Vâng, đây là nơi mà chúng ta phải thực hiện một
quyết định như là làm thế nào để chúng tôi sẽ xử lý các sự kiện - thông qua một
MessageLoop hoặc thông qua OnEvent chức năng.
sự kiện trên GUI
Như đã nói ở trên, có hai chế độ cơ bản GUI: chế độ MessageLoop và chế độ
OnEvent . Các chế độ đơn giản chỉ là hai cách khác nhau để phản ứng của các sự
kiện GUI. Các chế độ mà bạn chọn sẽ tùy thuộc vào sở thích cá nhân , Và mức độ
đối với một số loại hình GUI bạn muốn tạo ra. Cả hai chế độ là bình đẳng với khả
năng tạo ra bất kỳ GUI mà bạn muốn nhưng đôi khi là một trong những chế độ chi
tiết phù hợp với một công việc khác hơn.
Chế độ mặc định là chế độ MessageLoop.Để chuyển sang chế độ OnEvent ta sử
dụng Opt("GUIOnEventMode", 1).
Chế độ MessageLoop