GIỚI THIỆU VỀ AUTOIT
AutoIt v3 một ngôn ngữ lập trình được cung cấp miễn phí, 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) các thao tác thường dùng. sự phối hợp của việc giả
lập nhấn phím , di chuyển chuột thao tác trên cửa sổ/control (control các đối
tượng tương tác được trên cửa sổ, dụ như button - nút bấm) để thực hiện tự
động các tác vụ theo cách thức c ngôn ngữ khác không thể làm hoặc làm
không chuẩn xác. AutoIt dung lượng rất nhỏ gọn, có thể chạy độc lập trên tất c
các phiên bản của Windows không cần các runtime để làm nền. Tuy nhiên, kể
từ phiên bản v3.3, AutoIt đã không còn hỗ trợ cho Windows 9x Win NT 4.0.
Ban đầu AutoIt được thiết kế để tự động cấu hình cho hàng ngàn máy PC. Theo
thời gian, AutoIt trở thành một ngôn ngữ đầy sức mạnh với sự hỗ trợ các biểu thức
phức tạp, hàm do người dùng tự định nghĩa, các vòng lặp mọi thứ một người
lập trình kịch bản dày dặn mong đợi.
đây các tính năng chính :
Dễ học các pháp đơn giản
Giả lập được việc nhấn phím và di chuyển chuột
Thao tác được với các tiến trình cửa s
Tương tác được với các control trên cửa sổ
File mã thể được biên dịch thành một file thi hành duy nhất
Cho phép tạo GUI - giao diện người ng
Hỗ trợ COM (Component Object Model)
Hỗ trợ biểu thức thông thường
Gọi một cách định hướng c DLL mở rộng các hàm API
Tài liệu chi tiết cộng đồng rộng hỗ trợ lớn
Tương thích với tất cả phân hệ của Windows
Hỗ trợ Unicode x64
Làm việc với User Account Control (UAC) trên Vista
AutoIt được thiết kế sao cho nhỏ nhất thể không cần dùng đến các file DLL
mở rộng hoặc Registry để thể an toàn khi chạy trên các Server. Các file
script (mã, kịch bản) thể được biên dịch thành file exe với công cụ Aut2Exe.
Sự kết hợp các COM DLL từ việc gọi AutoItX cho phép bạn thêm c tính năng
độc nhất vào các đoạn script hay ngôn ngữ lập trình yêu thích.
CẤU TRÚC THƯ MỤC CÀI ĐẶT AUTOIT
Các file thư mục
Miêu tả
(Thư mục cấp trên)
AutoIt3.exe
Chương trình chính của AutoIt để chạy các file script
AutoIt3_x64.exe
Phiên bản x64 của AutoIt (nếu cài đặt).
AU3Info.exe
AutoIt Window Info Tool cung cấp thông tin từ cửa
sổ.
AU3Info_x64.exe
Phiên bản x64 của AutoIt (nếu cài đặt).
AU3Check.exe
Trình kiểm tra pháp.
AutoIt.chm
File trợ giúp, s dụng AutoIt3.chm UDFs3.chm
Uninstall.exe
Trình gỡ b AutoIt
AutoIt v3 Website.url
Shortcut để truy cập vào website
: http://www.autoitscript.com/autoit3/
Aut2Exe
Icons\
Chứa các icon (*.ico) để dùng cho file au3.
Aut2Exe.exe
Trình biên dịch file nguồn thành file exe
Aut2Exe_x64.exe
Phiên bản x64 của AutoIt (nếu cài đặt).
AutoItSC.bin
Mẫu thể thực thi cho đã được biên dịch
AutoItSC_x64.bin
Mẫu thể thực thi x64 cho đã được biên dịch.
UPX.exe
Trình nén UPX đ nén kích thước của file mã khi dịch
sang file exe
Examples
GUI\
Các dụ về GUI được viết trong AutoIt.
Helpfile\
Chứa các file script dụ được dùng trong file help
Extras
AutoUpdateIt\
Chứa một script giúp cho việc cập nhật phiên bản mới
của AutoIt3.
Editors\
Chứa các định nghĩa màu pháp cho vài trình soạn
thảo phổ biến.
Exe2Aut\
Chứa các công c chuyển file exe sang file script
nguồn.
SQLite\
Chứa tiện ích dòng lệnh SQLite file trợ giúp
v2_to_v3_Converter\
Chứa công cụ giúp chuyển đổi cú pháp AutoIt từ
v2.64 sang AutoIt v3.
Icons
Chứa icon được dùng cho file au3
Include
Chứa các file thư viện với các hàm được định nghĩa sẵn
AutoItX
Chứa một phiên bản DLL của AutoIt v3 để cung cấp một tập hợp con các tính
năng của giao diện ActiveX/COM DLL.
SciTe
Chứa trình biên soạn văn bản SciTe để viết script
Xin nhắc lại là để chạy được các đoạn script của AutoIt, chỉ yêu cầu file
AutoIt3.exe. Nếu bạn biên dịch một file script sang file thể thực thi thì người
dùng khác không cần phải cài đặt AutoIt vẫn thể chạy được file script đã
biên dịch.
(Ngoại lệ : dưới Windows NT4, file PSAPI.dll thì cần thiết trong đường dẫn hoặc
trong thư mục cài đặt AutoIt cho các hàm Process…() làm việc.)
VIẾT SCRIPT
Trong AutoIt đã được tích hợp sẵn trình soạn thảo SciTe cho phép ta viết chạy
các đoạn script một cách tự động. Tuy nhiên đây bản rút gọn cho nên đã được
lượt bỏ vài tính năng công c bổ sung. Phiên bản đầy đ các bạn thể tải về từ
http://www.autoitscript.com/autoit3/scite/.
đây tôi xin nói thêm vài điểm lưu ý trong việc soạn .
Khi viết script trong SciTe, bạn cần phải lưu lại trước khi nhấn
phím F5 để chạy. File nguồn đuôi au3.
Để viết hiển thị được tiếng Việt, bạn vào "File > Encoding" sau
đó chọn UCS -2 Little Endian hoặc UCS-2 Big Endian.
SciTe sẽ hiển thị các dòng lệnh của bạn với nhiều màu sắc khác
nhau, tùy theo thành phần pháp. Nếu bạn cảm thấy các màu sắc hiển thị
không vừa ý thì thể sử dụng công cụ SciTeConfig để chỉnh lại. Công cụ
này có sắn trong phiên bản full của SciTe hoc tải riêng l t
www.autoitscript.com.
Nếu bạn không thích dùng SciTe để soạn script thì thể dùng các
công cụ biên soạn miễn phí khác như Crimson Editor
(http://www.crimsoneditor.com/) hoc Source Edit
(http://www.sourceedit.com/) nhưng sẽ phải thực hiện cấu hình việc khai
báo chương trình chạy file au3 trình biên dịch.Các file pháp được viết
sẵn do AutoIt cung cấp thể dùng cho nhiều trình soạn thảo chúng được
chứa trong trong thư mục Extra (...\AutoIt v3\Extra)
BIÊN DỊCH FILE SCRIPT THÀNH FILE EXE
Khi biên dịch một file script thành file exe, bạn thể yên tâm rằng s chạy
được trên mọi máy tính cài hệ điều hành Windows không cần bất cứ một
runtime nào đ làm nền. Bởi tất cả các #include cũng sẽ được nén, hóa
kết hợp vào trong một file duy nhất. Nhưng bạn cần phải chắc chắn một điều rằng
file script của bạn không lỗi pháp, bởi compiler không thực hiện kiểm tra
pháp khi biên dịch sang file *.exe.
Muốn thực hiện việc biên dịch file script, 3 cách :
Cách 1 : Bạn cần gọi công cụ Aut2Exe. Vào menu "Start > All programs >
AutoIt v3 > Compile scritpt to exe" làm theo hướng dẫn của mẫu form.
Error!
Cách 2 : Từ trình soạn thảo SciTe bạn vào Tool > Compile hoặc nhấn Ctrl +
F7
Cách 3 : Nhấp phải chuột vào file nguồn (au3) chọn Compile Script.
Error!
cách 2 3, file thi hành sẽ được tạo ra ngay tại thư mục chứa file nguồn. Ngoài
ra còn thêm một cách biên dịch khác dùng command promt đ gọi aut2exe
với các tham số chỉ định. ch này khá dài dòng và phức tạp nên không đ cập
đây.
CÁC TOÁN TỬ
AutoIt hỗ trợ các toán tử gán, tính số học, so sánh, logic.
Toán tử
=
+=
-=
*=
/=
&=
+
-
*
/
&
^
=
==
<>
>
>=
<
<=
AND
OR
NOT
Nếu trong biểu thức cần xử sử dụng nhiều toán tử thì chúng sẽ được thực
hiện theo thứ tự trước sau. Việc tính toán thường được thực hiện từ trái qua phải
tuân theo các qui tắc chung của đại số. Bên dưới thứ t ưu tiên của các toán t :
NOT
^
* /
+ -
&
< > <= >= = <> ==
AND OR
dụ : 2 + 4 * 10 sẽ kết quả 42:
Bởi phép nhân * ưu tiên cao hơn phép cộng + , nên 4 * 10 (bng
40) 2 + 40 (bằng 42).
Để kết quả tính toán chính xác bạn nên sử dụng cặp dấu ngoặc đơn ( ) để nhóm
các biểu thức con một cách thích hợp.. Mặc không được đề cập, song, dấu
ngoặc đơn toán tử có độ ưu tiên cao nhất trong tất cả các toán tử.
Vd : (2 + 4) * 10 bằng 60. NOT (12+3)/5 sẽ bằng 0
Đối với toán tử logic AND, OR, ta dụ sau :
Vd 1 : If MyFunc1() OR MyFunc2() Then
(MyFunc2() sẽ không được gọi nếu như MyFunc1() trả về True)
Vd 2 : If MyFunc1() AND MyFunc2() Then
(MyFunc2() sẽ không được gọi nếu MyFunc1() trả về False)
KIỂU DỮ LIU
Trong AutoIt chỉ một loại dữ liệu gọi Variant (tạm dịch biến). Một biến
thể chứa dữ liệu theo kiểu chuỗi (string) hoặc là kiểu s (number) tùy vào tình
huống sử dụng. dụ như nếu bạn nhân hai biến với nhau thì lúc này biến kiểu
number, còn nếu bạn sử dụng phép toán ghép chuỗi với hai biến t chúng sẽ được
đối xử như các chuỗi tự.
dụ :
10 * 20 sẽ bằng số 200 (* nhân hai biến với nhau)
10* "20" cũng sẽ bằng số 200
hoc "10" * "20" cũng bằng số 200
10 & 20 sẽ trả về một chuỗi là "1020" (& phép toán ghép chuỗi)
Nếu một chuỗi được sử dụng n một số, một phép gọi hàm Number()nên được
thực hiện. nếu như tự đầu tiên của chuỗi không phải một số thì sẽ trả
về một số 0. dụ :
10 * "abc" sẽ trả về số 0
10* number("abc") ng trả về 0
10* number("25ghj") sẽ trả về 250
Nếu một chuỗi được sử dụng trong kiểu boolean (True/False) một chuỗi
rỗng "" t sẽ được xem như bằng 0 (False).
KIỂU SỐ - NUMBER
Number thể số thập phân như : 3, 5.642 -8
cũng thể là số thập phân theo dạng khoa học, dụ như 1.5e3 sẽ thay cho 1500
(vì 1.5*10^3)
hay hệ thập lục phân (hexa) : 0x409 hoặc 0xff4a.
Chú ý :
Hệ hexa trong AutoIt phải bắt đầu với 0x theo sau các số từ 0 đến
9 hoặc/và các tự a, b, c, d, e, f.
Khi tính toán các biểu thức số, bạn không cần quan tâm đến việc giới hạn
của kiểu dữ liệu. Nếu kết quả số nguyên, AutoIt sẽ trả về cho bạn số nguyên.
Nếu kết quả số thập phân, AutoIt sẽ trả về giá trị thập phân. dạng thập
phân, giá trị lớn nhất thể chứa (2
64
- 1)/2.
Một số hàm trong AutoIt chỉ làm việc với số nguyên 32 bit (mang giá trị
từ 0 đến 2
32
-1) các số này sẽ được chuyển đổi tự động, tùy vào hàm sử
dụng. dụ như BitAnd.
KIỂU CHUỖI - STRING
Chuỗi ký tự được rào trong cặp dấu ngoặc kép " " hoặc cặp dấu nháy đơn ' '.
dụ :
"this is a string"
' Welcome to AutoIt ! '
Mặc AutoIt hỗ trợ hai phương thức biểu diễn chuỗi nhưng khi sử dụng bạn phải
sử dụng thống nhất trật tự, không thể bắt đầu rào chuỗi với dấu ngoặc kép, kết
thúc chuỗi với dấu nháy đơn ngược lại. dụ sau cho thấy chuỗi không hợp lệ :
" doctor for pc '(sẽ báo lỗi khi chạy)
Tuy nhiên, trong trường hợp bạn muốn nhấn mạnh một nội dung nào đó trong
chuỗi bằng dấu ngoặc kép hoặc dấu nháy đơn t AutoIt cũng hỗ trợ việc trộn hai
dạng tự y. bạn phải nhớ tính trật tự đầy đủ trong khi sử dụng. d :
' It is a "black" web '
"This "sentence" contains "lots" of "double-quotes". "
" It 's a dog "
nhưng ' it 's a dog ' (là một chuỗi bị lỗi)
Một biến kiểu chuỗi thể chứa đến 2,147,483,647 tự (tương đương với 1651
quyển sách dày 500 trang, mỗi trang 40 dòng, mỗi dòng 65 tự)
KIỂU BOOLEAN
Kiểu boolean chỉ mang hai g trị đúng hoặc sai (True/False). Trong nhiều trường
hợp sử dụng thì một kiểu boolean trả về False khi giá trị của biến đó là 0 hoặc
chuỗi rỗng "". Tất cả các trường hợp khác 0 đều được xem như True, theo mặc
định thì True bằng 1. Thông thường, các phép toán logic AND, OR hoặc NOT
thường được dùng với kiểu boolean trong việc thẩm định điều kiện.
dụ :
$b1 = true
$b2 = false
$b3 = $b1 And $b2--> ($b3 s bằng False)
$b2 = 5
$b3 = $b1 And $b2--> ($b3 s bằng True)
$b3 = $b1 + $b2 --> ($b3 sẽ bằng 6)
$b3 = NOT $b3 --> ($b3 sẽ bằng 0)
Trong trường hợp bạn xử một biến boolean như một chuỗi thì :
một boolean true sẽ chứa chuỗi "True"
một boolean false sẽ chứa chuỗi "False"
dụ :
$b1 = true
$str = "test is : "
$string = $str & $b1 ($string sẽ chứa chuỗi "Test is : True")
KIỂU NHỊ PHÂN - BINARY
Kiểu binary thể lưu giữ mọi byte giá trị, chúng được chuyển đổi sang dạng hexa
khi lưu trong một biến chuỗi. dụ :
$bin = Binary("abc")
$str = string($bin) --> "0x616263"
KIỂU CON TRỎ - POINTER
Kiểu con trỏ dùng đ lưu trữ địa chỉ bộ nhớ 32 bit hoặc 64 bit tùy vào phiên bản
AutoIt được sử dụng. Thực chất con trỏ một số nguyên chỉ định v trí của thành
phần dữ liệu nào đó trong bộ nhớ. Tuy nhiên, khi truy xuất trong AutoIt t con trỏ
sẽ được lưu dạng hexa trong một biến kiểu chuỗi. Handle (tạm dịch kênh hay
địa chỉ trong bộ nhớ) của cửa sổ được trả về bởi hàm WinGetHandle một kiểu
con trỏ, mang giá trị dạng hexa. Nếu muốn xem dạng thập phân bình thường ta
dùng hàm Number .
Mặc phần này trình bày nhiều kiểu dữ liệu AutoIt hỗ trợ nhưng trên thực
tế, bạn chỉ cần quan tâm đến hai kiểu chính đó number string. Đây chính
hai kiểu dữ liệu thường dùng nhất khi viết script. Các kiểu khác dùng để tham khảo
cho biết chứ thực chất chúng cũng được tạo n từ hai kiểu trên thường chúng ít
khi được dùng đến. Nếu bạn đã là một người sành sỏi về lập trình thì việc này
không cần phải bàn.
DẠNG CHUNG
Một chương trình AutoIt do nhiều thành phần cấu thành, trong đó, biến, biểu thức,
hàm, macro,... đóng vai trò quan trọng. Tuy nhiên chúng chỉ những "cá thể" độc
lập mang một chức năng nhất định. Tất cả chúng phải được kết hợp với nhau theo
một ch thức hợp t ta sẽ được một chương trình hoàn chỉnh. Các cách thức
đó do chính AutoIt qui định một đoạn chạy được dạng tổng quát như sau
:
<chỉ định thư viện>
<khai báo các biến>
<các câu lệnh, biểu thức>
dụ :
<các dòng miêu tả, ghi chú>
<gọi hàm hoặc định nghĩa m>
. . . .
; chương trình đơn giản hiện thông điệp hello world
; welcome to autoit
Global $m
$m = "Hello world"
MsgBox(0, "My Msg", $m)
MsgBox(0, "Msg", "Welcome to AutoIt")
Tùy vào mục đích của người dùng các thành phần thể hoặc không trong
chương trình. Như dụ trên, ta thấy không phần chỉ định thư viện bởi ta chỉ
sử dụng các hàm được thiết kế sẵn, luôn trong chương trình chính (như hàm
MsgBox ). Thư viện chỉ cần thiết khi ta gọi các hàm mở rộng, thông thường
trong việc thiết kế GUI (Graphic User Interface - giao diện người dùng) hoặc các
hàm tiện ích. Khai báo sử dụng biến cần thiết nếu như ta muốn lưu các dữ
liệu, giá trị để chương trình hoạt động. hàm, tất nhiên không thể thiếu nếu
như bạn viết các chương trình phức tạp tần suất sử dụng lại nhiều lần một tác
vụ nào đó.
dụ nêu trên chỉ một đoạn đơn giản, không thể thể hiện hết tất cả các
chức năng trong AutoIt. Nhưng ta cũng phân ch bộ để hiểu vấn đề. Hai dòng
lệnh đầu tiên dòng ghi chú, thường dùng để miêu t giải thích chức năng của
một đoạn hay câu lệnh nào đấy. Dòng thứ ba khai báo biến. Dòng thứ
gán giá trị cho biến. Hai dòng còn lại gọi sử dụng hàm hiển thị thông điệp.
THƯ VIỆN
Nói theo kiểu kỹ thuật, nếu rành về lập trình bạn thể tự tạo ra một chương trình
hữu ích, tác dụng chỉ chứa toàn những mệnh đề của chính bạn. Tuy nhiên điều
này hiếm hoi đòi hỏi rất nhiều công sức thời gian. Với bất kỳ một ngôn
ngữ lập trình nào, không riêng AutoIt, những người tạo ra chúng đều cung cấp
cho chúng những chương trình con, mỗi chương trình con thực hiện một chức năng
nhất định ta thường gọi hàm. Tập hợp tất cả các hàm này sẽ được chứa trong
một file thư viện, tùy vào lĩnh vực xử của hàm chúng được lưu trong các file
thư viện tương ng. dụ như thư viện Array chứa các hàm về quản mảng, thư
viện Sound chứa các hàm dùng để điều khiển âm thanh, thư viện Math cho các
hàm toán học....
Với AutoIt thì những người cài đặt trình biên dịch đã viết sẵn đa số các hàm chung
bạn sẽ dùng. Cho nên sẽ rất nhiều hàm bạn thể sử dụng, không cần
khai báo thư viện theo mặc định chúng hàm chuẩn luôn được đưa vào chương
trình của bạn. Chỉ những hàm người ta liệt vào UDF (User Defined
Function - hàm do người sử dụng tạo sẵn, không phải hàm chuẩn) hoặc những hàm
nào ghi chú t viện t bạn mới chỉ định thư viện khi viết chương trình. Nếu
thích bạn cũng thể tạo một t viện để chứa các hàm của riêng mình sau khi bạn
hiểu được AutoIt.
CÁC CHÚ Ý
Đây những chú ý quan trọng bạn nên ghi nhớ đ thể sử dụng AutoIT một
cách hiệu quả.
AutoIt là một ngôn ngữ kịch bản hoạt động theo ch thông dịch, các lệnh
được đọc thực hiện một cách tuần tự. nghĩa đọc đến đâu t thực
hiện đến đó, không đọc hết một lượt n các ngôn ngữ C hay Pascal.
AutoIt không hiệu ngăn cách các câu lệnh với nhau, cho nên mỗi câu
lệnh phải được viết trên một dòng, câu lệnh thứ hai phải được viết dòng kế
tiếp (trong c pascal t sử dụng dấu chấm phẩy ; đ ngăn cách các câu
lệnh)
AutoIt không phân biệt chữ hoa chữ thường đối với các lệnh được viết
(ngoại trừ Title của cửa sổ, xem phần Window Title). dụ, biến $var,
$VAR $VaR chỉ một biến.
Tất cả các thành phần liên quan đến việc tạo xử cửa sổ được AutoIt hỗ
trợ rất mạnh, chúng các hàm chức năng tương ứng. Tuy nhiên, trong giới
hạn của ebook, tôi không thể hướng dẫn tất cả c hàm. Tham khảo t
dịch trong file help một cách tự học hiệu quả.
Comment hay chú thích thành phần rất hay dùng khi lập trình, đối với hầu
hết các ngôn ngữ chúng dùng để diễn đạt chức năng của một đoạn lệnh hay
đánh dấu nhằm dễ đọc, dễ quan sát đối với việc trình bày. Chúng không hề
chức năng thi hành sẽ được trình điều khiển bỏ qua khi đọc đến. Và
AutoIt hỗ trợ hai dạng chú thích. Chú thích theo dòng (sử dụng dấu chấm
phẩy để báo hiệu) chú thích theo đoạn (sử dụng cặp #cs.. #ce) để rào các
dòng chú thích bên trong. dụ :
; this is a first comment line
; this is a second comment
#cs
.......comment start
Comment 1
Comment 2
........
comment end
#ce
MsgBox(0, "msg", "Welcome to AutoIT")
KHAI BÁO BIẾN
Biến một đại diện cho vùng địa ch nào đó trong bộ nhớ, đó dữ liệu được
lưu trữ. Tuy nhiên đây ta không đề cập đến vấn đề dữ liệu được chứa trong bộ
nhớ như thế nào. Ta chỉ cần biết, biến một đại diện mang giá trị ta cần tính toán.
Trong AutoIt, một biến hợp lệ phải tên được bắt đầu với tự $ sau đó các
tự alpha(a-z, A-Z), số (0-9) dấu gạch dưới _. dụ :
$var1 $my_variable $123 $String_temp
$abc@ $love.baby --> đây hai biến không hợp l
Để khai báo một biến, biến đó phải được tạo với một trong các từ khóa Global,
Local hay Dim. Các từ khóa này chức năng giới hạn phạm vi tồn tại sử dụng
của biến. dụ :
Global $var1, $title
Dim $m, $name
Global: chỉ định khai báo một biến phạm vi toàn cục. Nghĩa mọi nơi
trong chương trình đều thể truy xuất, chỉnh sửa nội dung của biến
này. biến này sẽ tồn tại cho đến khi chương trình thoát ra. dụ :
Global $m = "Hello world"
MsgBox(0, "MSG", $m)
_RepText()
MsgBox(0, "MSG", $m)
; định nghĩa hàm
Func _RepText()
$m &= ", " &$m
EndFunc
Đầu tiên ta tạo ra một biến $m cho hiển thị nội dung của " Hello world".
Sau đó hàm _RepText() được gọi để lặp lại nội dung của biến $m. Hàm MsgBox
thứ hai sẽ hiển thị "Hello world, Hello world". Do $m biến toàn cục nên ta
thể sửa đổi tùy ý giá trị của nó.
Local: chỉ định khai báo một biến phạm vi cục bộ. Tức chỉ được
phép sử dụng, thao tác phạm vi giới hạn trong chương trình, thường
bên trong các hàm. sẽ được khởi tạo khi hàm được gọi sẽ bị
hủy khi hàm kết thúc. Những nơi khác trong chương trình không hề biết
sự tồn tại của biến Local này. dụ :
; chương trình sau sẽ chạy command line
_ExeProg() ; sẽ thực thi cmd
Run($prog) ; dòng này sẽ báo lỗi
Func _ExeProg()
Local $prog = "cmd"
Run($prog)
EndFunc
Trong chương trình trên, sau khi hàm _ExeProg() được gọi thực hiện xong t
biến cục bộ $prog bị hủy, cho nên lệnh Run($prog) không được thực thi $prog
bên ngoài không mang một giá trị nào. Nói cách khác $prog bên trong hàm
_ExeProg $prog bên ngoài hoàn toàn khác nhau.
Bạn chú ý một điều , nếu bên trong một hàm, bạn khai báo một biến cục bộ cùng
tên với một biến toàn cục thì biến cục bộ sẽ được ưu tiên sử dụng thay biến toàn
cục. Khi nào tìm hiểu đến phần định nghĩa hàm, bạn sẽ hiểu hơn về biến cục bộ.
trong hàm rất thường sử dụng biến local để tính toán, lưu trữ giá trị.
Dim : Tạo ra một biến phạm vi cục b (local) nếu như biến này chưa
được khai báo trước đó dạng toàn cục (global). nghĩa :
Nếu khai báo biến bên ngoài hàm thì phạm vi toàn cục.
dụ :
; đoạn sau sẽ cho gọi calculator thay notepad
Dim $p = "notepad"
_modify()
Run($p)
Func _modify()
$p = "calc"
EndFunc
Nếu khai báo bên trong hàm t phạm vi cục bộ. Tuy nhiên, nếu biến Dim này
cùng tên với một biến Global, thì nội dung của biến Global sẽ bị viết đè. Điều
này bạn nên chú ý.
dụ :
; đoạn này sẽ duyệt thư mục Temp thay t mục Windows
Global $explore = "Explorer " & @WindowsDir
function()
Run($explore)
Func function()
Dim $explore = "Explorer " & @TempDir
EndFunc
Trong các dụ trên, ta thấy rằng việc khai báo một biến thể kết hợp với việc
khởi tạo giá trị ban đầu cho biến đó. Theo mặc định, nếu bạn không gán giá trị khi
khai báo thì biến đó mang giá trị 0 (nếu sử dụng như một kiểu number) hoặc ""
(nếu sử dụng như một kiểu string).
rằng AutoIt cho phép bạn sử dụng một biến không cần khai báo, nhưng sẽ thật
không hay khi chương trình của bạn nhiều biến được tạo rải-rác nhiều nơi.
Tính trật tự thống nhất sẽ không đạt hiệu quả bạn khó kiểm soát được các đối
tượng của mình trong hàng dòng lệnh đan xen nhau. Cũng xin nói thêm, nếu bạn
sử dụng một biến không khai báo trước đó, tùy trường hợp vận dụng, thì hoặc
chương trình sẽ báo lỗi, hoặc biến đó sẽ được tạo t động với phạm vi cục bộ
(Local). Nếu bạn khai báo một biến Local bên ngoài hàm thì vẫn phạm vi
như Global.
Khi khai báo một biến, bạn nên chỉ định rõ phạm vi Local hoặc Global, nên hạn
chế dùng Dim. Trừ khi bạn nắm được tất cả các biến trong chương trình của
mình, nhằm tránh các lỗi về việc chỉnh sửa dữ liệu không mong muốn thể xảy ra.
KHAI BÁO HẰNG SỐ
Hằng số một biến mang giá trị cố định giá trị này chỉ được gán một lần khi
khởi tạo. Bất kỳ thao tác nào cố gắng thay đổi nội dung của hằng số đều thao tác
không hợp lệ.
Việc khai báo hằng số cũng giống như việc khai báo biến, nhưng bạn cần đặt thêm
từ khóa Const. sau Dim, Global hoặc Local. dạng như sau :
Const $pi = 3.14 ; hằng số cục bộ
Local $text = "Hello" ; hằng số cục bộ
Global Const $e = exp(1) ; hằng số toàn cục
Chú ý : bạn không thể khai báo một hằng số trùng tên với một biến đang tồn tại.
KHAI BÁO MỘT MẢNG
Mảng thực chất là một tập hợp các biến cùng kiểu dữ liệu được gọi chung
bằng một tên. c biến trong một mảng thường được gọi "phần tử" được
truy cập đến bởi chỉ mục. Các mảng thể một hay nhiều chiều, thông
dụng nhất mảng một chiều (danh sách) mảng hai chiều (ma trận gồm
hàng cột).
MẢNG MỘT CHIỀU (DANH SÁCH)
Mảng một chiều dãy gồm nhiều mục liên tiếp nhau. Bạn cứ hình dung như
một cái danh sách. Cũng số thứ tự, cũng thông tin (dữ liệu) ứng với thứ tự
đó.
Hình thức bản cho việc khai báo mảng một chiều :
<scope> <var_name>[<size>]
<scope> : cho biết đây biến Local, Global hay Dim

Preview text:

GIỚI THIỆU VỀ AUTOIT
AutoIt v3 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
không chuẩn xác. AutoIt có dung lượng rất nhỏ gọn, có thể chạy độc lập trên tất cả
các phiên bản của Windows mà không cần các runtime để làm nền. Tuy nhiên, kể
từ phiên bản v3.3, AutoIt đã không còn hỗ trợ cho Windows 9x và Win NT 4.0.
Ban đầu AutoIt được thiết kế để tự động cấu hình cho hàng ngàn máy PC. Theo
thời gian, AutoIt trở thành một ngôn ngữ đầy sức mạnh với sự hỗ trợ các biểu thức
phức tạp, hàm do người dùng tự định nghĩa, các vòng lặp và mọi thứ mà một người
lập trình kịch bản dày dặn mong đợi.
Ở đây là các tính năng chính : ◻
Dễ học vì các cú pháp đơn giản ◻
Giả lập được việc nhấn phím và di chuyển chuột ◻
Thao tác được với các tiến trình và cửa sổ ◻
Tương tác được với các control trên cửa sổ ◻
File mã có thể được biên dịch thành một file thi hành duy nhất ◻
Cho phép tạo GUI - giao diện người dùng ◻
Hỗ trợ COM (Component Object Model) ◻
Hỗ trợ biểu thức thông thường ◻
Gọi một cách có định hướng các DLL mở rộng và các hàm API ◻
Tài liệu chi tiết và cộng đồng rộng hỗ trợ lớn ◻
Tương thích với tất cả phân hệ của Windows ◻ Hỗ trợ Unicode và x64 ◻
Làm việc với User Account Control (UAC) trên Vista
AutoIt được thiết kế sao cho nhỏ nhất có thể và không cần dùng đến các file DLL
mở rộng hoặc Registry để nó có thể an toàn khi chạy trên các Server. Các file
script (mã, kịch bản) có thể được biên dịch thành file exe với công cụ Aut2Exe.
Sự kết hợp các COM và DLL từ việc gọi AutoItX cho phép bạn thêm các tính năng
độc nhất vào các đoạn script hay ngôn ngữ lập trình yêu thích.
CẤU TRÚC THƯ MỤC CÀI ĐẶT AUTOIT
Các file và thư mục Miêu tả (Thư mục cấp trên) AutoIt3.exe
Chương trình chính của AutoIt để chạy các file script AutoIt3_x64.exe
Phiên bản x64 của AutoIt (nếu có cài đặt).
AutoIt Window Info Tool – cung cấp thông tin từ cửa AU3Info.exe sổ. AU3Info_x64.exe
Phiên bản x64 của AutoIt (nếu có cài đặt). AU3Check.exe Trình kiểm tra cú pháp. AutoIt.chm
File trợ giúp, sử dụng AutoIt3.chm và UDFs3.chm Uninstal .exe Trình gỡ bỏ AutoIt
Shortcut để truy cập vào website AutoIt v3 Website.url
: http://www.autoitscript.com/autoit3/ Aut2Exe Icons\
Chứa các icon (*.ico) để dùng cho file au3. Aut2Exe.exe
Trình biên dịch file nguồn thành file exe Aut2Exe_x64.exe
Phiên bản x64 của AutoIt (nếu có cài đặt). AutoItSC.bin
Mẫu có thể thực thi cho mã đã được biên dịch AutoItSC_x64.bin
Mẫu có thể thực thi x64 cho mã đã được biên dịch.
Trình nén UPX để nén kích thước của file mã khi dịch UPX.exe sang file exe Examples GUI\
Các ví dụ về GUI được viết trong AutoIt. Helpfile\
Chứa các file script ví dụ được dùng trong file help Extras
Chứa một script giúp cho việc cập nhật phiên bản mới AutoUpdateIt\ của AutoIt3.
Chứa các định nghĩa màu cú pháp cho vài trình soạn Editors\ thảo phổ biến.
Chứa các công cụ chuyển file exe sang file script Exe2Aut\ nguồn. SQLite\
Chứa tiện ích dòng lệnh SQLite và file trợ giúp
Chứa công cụ giúp chuyển đổi cú pháp AutoIt từ
v2_to_v3_Converter\ v2.64 sangAutoIt v3. Icons
Chứa icon được dùng cho file au3 Include
Chứa các file thư viện với các hàm được định nghĩa sẵn AutoItX
Chứa một phiên bản DLL của AutoIt v3 để cung cấp một tập hợp con các tính
năng của giao diện ActiveX/COM và DLL. SciTe
Chứa trình biên soạn văn bản SciTe để viết script
Xin nhắc lại là để chạy được các đoạn script của AutoIt, chỉ yêu cầu có file
AutoIt3.exe. Nếu bạn biên dịch một file script sang file có thể thực thi thì người
dùng khác không cần phải cài đặt AutoIt mà vẫn có thể chạy được file script đã biên dịch.
(Ngoại lệ : dưới Windows NT4, file PSAPI.dll thì cần thiết trong đường dẫn hoặc
trong thư mục cài đặt AutoIt cho các hàm Process…() làm việc.) VIẾT SCRIPT
Trong AutoIt đã được tích hợp sẵn trình soạn thảo SciTe cho phép ta viết và chạy
các đoạn script một cách tự động. Tuy nhiên đây là bản rút gọn cho nên đã được
lượt bỏ vài tính năng và công cụ bổ sung. Phiên bản đầy đủ các bạn có thể tải về từ
http://www.autoitscript.com/autoit3/scite/.
Ở đây tôi xin nói thêm vài điểm lưu ý trong việc soạn mã. ◻
Khi viết script trong SciTe, bạn cần phải lưu lại trước khi nhấn
phím F5 để chạy. File nguồn có đuôi là au3. ◻
Để viết và hiển thị được tiếng Việt, bạn vào "File > Encoding" sau
đó chọn UCS -2 Little Endian hoặc UCS-2 Big Endian. ◻
SciTe sẽ hiển thị các dòng lệnh của bạn với nhiều màu sắc khác
nhau, tùy theo thành phần cú pháp. Nếu bạn cảm thấy các màu sắc hiển thị
không vừa ý thì có thể sử dụng công cụ SciTeConfig để chỉnh lại. Công cụ
này có sắn trong phiên bản ful của SciTe hoặc tải riêng lẻ từ www.autoitscript.com. ◻
Nếu bạn không thích dùng SciTe để soạn script thì có thể dùng các
công cụ biên soạn miễn phí khác như Crimson Editor
(http://www.crimsoneditor.com/) hoặc Source Edit
(http://www.sourceedit.com/) nhưng sẽ phải thực hiện cấu hình việc khai
báo chương trình chạy file au3 và trình biên dịch.Các file cú pháp được viết
sẵn do AutoIt cung cấp có thể dùng cho nhiều trình soạn thảo và chúng được
chứa trong trong thư mục Extra (. .\AutoIt v3\Extra)
BIÊN DỊCH FILE SCRIPT THÀNH FILE EXE
Khi biên dịch một file script thành file exe, bạn có thể yên tâm rằng nó sẽ chạy
được trên mọi máy tính cài hệ điều hành Windows mà không cần bất cứ một
runtime nào để làm nền. Bởi vì tất cả các #include cũng sẽ được nén, mã hóa và
kết hợp vào trong một file duy nhất. Nhưng bạn cần phải chắc chắn một điều rằng
file script của bạn không có lỗi cú pháp, bởi vì compiler không thực hiện kiểm tra
cú pháp khi biên dịch sang file *.exe.
Muốn thực hiện việc biên dịch file script, có 3 cách : 
Cách 1 : Bạn cần gọi công cụ Aut2Exe. Vào menu "Start > All programs >
AutoIt v3 > Compile scritpt to exe"
và làm theo hướng dẫn của mẫu form. Error!
Cách 2 : Từ trình soạn thảo SciTe bạn vào Tool > Compile hoặc nhấn Ctrl + F7 
Cách 3 : Nhấp phải chuột vào file nguồn (au3) và chọn Compile Script. Error!
Ở cách 2 và 3, file thi hành sẽ được tạo ra ngay tại thư mục chứa file nguồn. Ngoài
ra còn có thêm một cách biên dịch khác là dùng command promt để gọi aut2exe
với các tham số chỉ định. Cách này khá dài dòng và phức tạp nên không đề cập ở đây. CÁC TOÁN TỬ
AutoIt hỗ trợ các toán tử gán, tính số học, so sánh, và logic. Toán tử Miêu tả =
Phép gán. Vd : $var = 5 (gán 5 vào biến $var) += Tăng. Vd : $var += 2
(tăng biến $var lên 2 đơn vị, tương đương với $var = $var+2) -= Giảm. Vd : $var -= 1
(giảm biến $var xuống 1 đơn vị, tương đương $var = $var -1) *= Nhân. /= Chia &=
Nối thêm chuỗi. Vd : $var = "one", và sau đó $var &= 10 ($var sẽ bằng "one10" ) +
Cộng hai số. Vd : 10 + 20 (bằng 30) -
Trừ hai số. Vd : 20 - 10 (bằng 10) *
Nhân hai số. Vd : 20 * 10 (bằng 200) /
Chia hai số. Vd : 20 / 10 (bằng 2) &
Ghép hai chuỗi với nhau. Vd : "one" & 10 (bằng "one10" ) ^
Lũy thừa. Vd : 2 ^ 4 (bằng 16)
So sánh bằng (không phân biệt chữ hoa và chữ thường khi so sánh =
chuỗi). Vd : If $var= 5 Then (trả về true nếu biến $var mang giá trị 5) ==
So sánh bằng (có phân biệt chữ hoa, chữ thường khi so sánh chuỗi. <> Khác hoặc Không bằng. > Lớn hơn. >= Lớn hơn hoặc bằng < Nhỏ hơn <= Nhỏ hơn hoặc bằng
Logic Và (cả hai). Vd : If $var = 5 AND $var2 > 6 Then (Điều kiện
AND trả về True nếu $var bằng 5 $var2 lớn hơn 6 )
Logic Hoặc. Vd : If $var = 5 OR $var2 > 6 Then (Trả về True nếu
OR $var bằng 5 Hoặc $var2 lớn hơn 6)
NOT Logic Phủ định. Vd : NOT 1 (trả về False)
Nếu trong biểu thức cần xử lý có sử dụng nhiều toán tử thì chúng sẽ được thực
hiện theo thứ tự trước sau. Việc tính toán thường được thực hiện từ trái qua phải và
tuân theo các qui tắc chung của đại số. Bên dưới là thứ tự ưu tiên của các toán tử : NOT ^ * / + - &
< > <= >= = <> == AND OR

Ví dụ : 2 + 4 * 10 sẽ có kết quả là 42:
Bởi vì phép nhân * có ưu tiên cao hơn phép cộng + , nên 4 * 10 (bằng 40) và 2 + 40 (bằng 42).
Để có kết quả tính toán chính xác bạn nên sử dụng cặp dấu ngoặc đơn ( ) để nhóm
các biểu thức con một cách thích hợp. Mặc dù không được đề cập, song, dấu
ngoặc đơn
là toán tử có độ ưu tiên cao nhất trong tất cả các toán tử. Vd :
(2 + 4) * 10 bằng 60.
NOT (12+3)/5 sẽ bằng 0
Đối với toán tử logic AND, OR, ta có ví dụ sau :
Vd 1 : If MyFunc1() OR MyFunc2() Then
(MyFunc2() sẽ không được gọi nếu như MyFunc1() trả về True)
Vd 2 : If MyFunc1() AND MyFunc2() Then
(MyFunc2() sẽ không được gọi nếu MyFunc1() trả về False) KIỂU DỮ LIỆU
Trong AutoIt chỉ có một loại dữ liệu gọi là Variant (tạm dịch là biến). Một biến có
thể chứa dữ liệu theo kiểu chuỗi (string) hoặc là kiểu số (number) tùy vào tình
huống sử dụng. Ví dụ như nếu bạn nhân hai biến với nhau thì lúc này biến có kiểu
number, còn nếu bạn sử dụng phép toán ghép chuỗi với hai biến thì chúng sẽ được
đối xử như các chuỗi ký tự. Ví dụ : 10 * 20 sẽ bằng số 200
(* là nhân hai biến với nhau)
10* "20" cũng sẽ bằng số 200
hoặc "10" * "20" cũng bằng số 200
10 & 20 sẽ trả về một chuỗi là "1020" (& là phép toán ghép chuỗi)
Nếu một chuỗi được sử dụng như một số, một phép gọi hàm Number()nên được
thực hiện. Và nếu như ký tự đầu tiên của chuỗi không phải là một ký số thì sẽ trả về một số 0. Ví dụ : 10 * "abc" sẽ trả về số 0 10* number("abc") cũng trả về 0
10* number("25ghj") sẽ trả về 250
Nếu một chuỗi được sử dụng trong kiểu boolean (True/False) và nó là một chuỗi
rỗng "" thì sẽ được xem như bằng 0 (False). KIỂU SỐ - NUMBER
Number có thể là số thập phân như : 3, 5.642 -8
cũng có thể là số thập phân theo dạng khoa học, ví dụ như 1.5e3 sẽ thay cho 1500 (vì 1.5*10^3)
hay hệ thập lục phân (hexa) : 0x409 hoặc 0xff4a. Chú ý : ◻
Hệ hexa trong AutoIt phải bắt đầu với 0x và theo sau là các ký số từ 0 đến
9 hoặc/và các ký tự a, b, c, d, e, f. ◻
Khi tính toán các biểu thức số, bạn không cần quan tâm đến việc giới hạn
của kiểu dữ liệu. Nếu kết quả là số nguyên, AutoIt sẽ trả về cho bạn số nguyên.
Nếu kết quả là số thập phân, AutoIt sẽ trả về giá trị thập phân. Ở dạng thập
phân, giá trị lớn nhất có thể chứa là (264 - 1)/2. ◻
Một số hàm trong AutoIt chỉ làm việc với số nguyên 32 bit (mang giá trị
từ 0 đến 232 -1) và các số này sẽ được chuyển đổi tự động, tùy vào hàm sử dụng. Ví dụ như BitAnd. KIỂU CHUỖI - STRING
Chuỗi ký tự được rào trong cặp dấu ngoặc kép " " hoặc cặp dấu nháy đơn ' '. Ví dụ : "this is a string" ' Welcome to AutoIt ! '
Mặc dù AutoIt hỗ trợ hai phương thức biểu diễn chuỗi nhưng khi sử dụng bạn phải
sử dụng thống nhất có trật tự, không thể bắt đầu rào chuỗi với dấu ngoặc kép, kết
thúc chuỗi với dấu nháy đơn và ngược lại. Ví dụ sau cho thấy chuỗi không hợp lệ :
" doctor for pc '(sẽ báo lỗi khi chạy)
Tuy nhiên, trong trường hợp bạn muốn nhấn mạnh một nội dung nào đó trong
chuỗi bằng dấu ngoặc kép hoặc dấu nháy đơn thì AutoIt cũng hỗ trợ việc trộn hai
dạng ký tự này. Và bạn phải nhớ tính trật tự và đầy đủ trong khi sử dụng. Ví dụ : ' It is a "black" web '
"This "sentence" contains "lots" of "double-quotes". " " It 's a dog " nhưng
' it 's a dog ' (là một chuỗi bị lỗi)
Một biến kiểu chuỗi có thể chứa đến 2,147,483,647 ký tự (tương đương với 1651
quyển sách dày 500 trang, mỗi trang có 40 dòng, mỗi dòng có 65 ký tự) KIỂU BOOLEAN
Kiểu boolean chỉ mang hai giá trị đúng hoặc sai (True/False). Trong nhiều trường
hợp sử dụng thì một kiểu boolean trả về False khi giá trị của biến đó là 0 hoặc là
chuỗi rỗng "". Tất cả các trường hợp khác 0 đều được xem như True, theo mặc
định thì True bằng 1. Thông thường, các phép toán logic AND, OR hoặc NOT
thường được dùng với kiểu boolean trong việc thẩm định điều kiện. Ví dụ : $b1 = true $b2 = false
$b3 = $b1 And $b2--> ($b3 sẽ bằng False) $b2 = 5
$b3 = $b1 And $b2--> ($b3 sẽ bằng True) $b3 = $b1 + $b2 --> ($b3 sẽ bằng 6) $b3 = NOT $b3 --> ($b3 sẽ bằng 0)
Trong trường hợp bạn xử lý một biến boolean như một chuỗi thì :
một boolean là true sẽ chứa chuỗi "True"
một boolean là false sẽ chứa chuỗi "False" ví dụ : $b1 = true $str = "test is : "
$string = $str & $b1 ($string sẽ chứa chuỗi "Test is : True") KIỂU NHỊ PHÂN - BINARY
Kiểu binary có thể lưu giữ mọi byte giá trị, chúng được chuyển đổi sang dạng hexa
khi lưu trong một biến chuỗi. Ví dụ : $bin = Binary("abc") $str = string($bin) --> "0x616263" KIỂU CON TRỎ - POINTER
Kiểu con trỏ dùng để lưu trữ địa chỉ bộ nhớ 32 bit hoặc 64 bit tùy vào phiên bản
AutoIt được sử dụng. Thực chất con trỏ là một số nguyên chỉ định vị trí của thành
phần dữ liệu nào đó trong bộ nhớ. Tuy nhiên, khi truy xuất trong AutoIt thì con trỏ
sẽ được lưu ở dạng hexa trong một biến kiểu chuỗi. Handle (tạm dịch là kênh hay
địa chỉ trong bộ nhớ) của cửa sổ được trả về bởi hàm WinGetHandle là một kiểu
con trỏ, mang giá trị ở dạng hexa. Nếu muốn xem ở dạng thập phân bình thường ta dùng hàm Number .
Mặc dù phần này trình bày nhiều kiểu dữ liệu mà AutoIt hỗ trợ nhưng trên thực
tế, bạn chỉ cần quan tâm đến hai kiểu chính đó là number và string. Đây chính là
hai kiểu dữ liệu thường dùng nhất khi viết script. Các kiểu khác dùng để tham khảo
cho biết chứ thực chất chúng cũng được tạo nên từ hai kiểu trên và thường chúng ít
khi được dùng đến. Nếu bạn đã là một người sành sỏi về lập trình thì việc này không cần phải bàn. DẠNG CHUNG
Một chương trình AutoIt do nhiều thành phần cấu thành, trong đó, biến, biểu thức,
hàm, macro,. . đóng vai trò quan trọng. Tuy nhiên chúng chỉ là những "cá thể" độc
lập mang một chức năng nhất định. Tất cả chúng phải được kết hợp với nhau theo
một cách thức hợp lý thì ta sẽ có được một chương trình hoàn chỉnh. Các cách thức
đó do chính AutoIt qui định và một đoạn mã chạy được có dạng tổng quát như sau : . . . . Ví dụ :
; chương trình đơn giản hiện thông điệp hello world ; và welcome to autoit Global $m $m = "Hello world" MsgBox(0, "My Msg", $m)
MsgBox(0, "Msg", "Welcome to AutoIt")
Tùy vào mục đích của người dùng mà các thành phần có thể có hoặc không trong
chương trình. Như ví dụ trên, ta thấy không có phần chỉ định thư viện bởi vì ta chỉ
sử dụng các hàm được thiết kế sẵn, luôn có trong chương trình chính (như hàm
MsgBox ). Thư viện chỉ cần thiết khi ta gọi các hàm mở rộng, thông thường là
trong việc thiết kế GUI (Graphic User Interface - giao diện người dùng) hoặc các
hàm tiện ích. Khai báo và sử dụng biến là cần thiết nếu như ta muốn lưu các dữ
liệu, giá trị để chương trình hoạt động. Và hàm, tất nhiên là không thể thiếu nếu
như bạn viết các chương trình phức tạp và có tần suất sử dụng lại nhiều lần một tác vụ nào đó.
Ví dụ nêu trên chỉ là một đoạn mã đơn giản, nó không thể thể hiện hết tất cả các
chức năng trong AutoIt. Nhưng ta cũng phân tích sơ bộ để hiểu vấn đề. Hai dòng
lệnh đầu tiên là dòng ghi chú, thường dùng để miêu tả giải thích chức năng của
một đoạn mã hay câu lệnh nào đấy. Dòng thứ ba là khai báo biến. Dòng thứ tư là
gán giá trị cho biến. Hai dòng còn lại là gọi và sử dụng hàm hiển thị thông điệp. THƯ VIỆN
Nói theo kiểu kỹ thuật, nếu rành về lập trình bạn có thể tự tạo ra một chương trình
hữu ích, có tác dụng chỉ chứa toàn những mệnh đề của chính bạn. Tuy nhiên điều
này là hiếm hoi vì nó đòi hỏi rất nhiều công sức và thời gian. Với bất kỳ một ngôn
ngữ lập trình nào, không riêng gì AutoIt, những người tạo ra chúng đều cung cấp
cho chúng những chương trình con, mỗi chương trình con thực hiện một chức năng
nhất định mà ta thường gọi là hàm. Tập hợp tất cả các hàm này sẽ được chứa trong
một file thư viện, tùy vào lĩnh vực xử lý của hàm mà chúng được lưu trong các file
thư viện tương ứng. Ví dụ như thư viện Array chứa các hàm về quản lý mảng, thư
viện Sound chứa các hàm dùng để điều khiển âm thanh, thư viện Math cho các hàm toán học. .
Với AutoIt thì những người cài đặt trình biên dịch đã viết sẵn đa số các hàm chung
mà bạn sẽ dùng. Cho nên sẽ có rất nhiều hàm mà bạn có thể sử dụng, không cần
khai báo thư viện vì theo mặc định chúng là hàm chuẩn luôn được đưa vào chương
trình của bạn. Chỉ những hàm mà người ta liệt kê nó vào UDF (User Defined
Function - hàm do người sử dụng tạo sẵn, không phải hàm chuẩn) hoặc những hàm
nào có ghi chú thư viện thì bạn mới chỉ định thư viện khi viết chương trình. Nếu
thích bạn cũng có thể tạo một thư viện để chứa các hàm của riêng mình sau khi bạn hiểu được AutoIt. CÁC CHÚ Ý
Đây là những chú ý quan trọng mà bạn nên ghi nhớ để có thể sử dụng AutoIT một cách hiệu quả. 
AutoIt là một ngôn ngữ kịch bản hoạt động theo cách thông dịch, các lệnh
được đọc và thực hiện một cách tuần tự. Có nghĩa là đọc đến đâu thì thực
hiện đến đó, không đọc hết một lượt như các ngôn ngữ C hay Pascal. 
AutoIt không có ký hiệu ngăn cách các câu lệnh với nhau, cho nên mỗi câu
lệnh phải được viết trên một dòng, câu lệnh thứ hai phải được viết ở dòng kế
tiếp (trong c và pascal thì sử dụng dấu chấm phẩy ; để ngăn cách các câu lệnh) 
AutoIt không phân biệt chữ hoa và chữ thường đối với các lệnh được viết
(ngoại trừ Title của cửa sổ, xem phần Window Title). Ví dụ, biến $var,
$VAR và $VaR chỉ là một biến. 
Tất cả các thành phần liên quan đến việc tạo và xử lý cửa sổ được AutoIt hỗ
trợ rất mạnh, chúng là các hàm chức năng tương ứng. Tuy nhiên, trong giới
hạn của ebook, tôi không thể hướng dẫn tất cả các hàm. Tham khảo và tự
dịch trong file help là một cách tự học hiệu quả. 
Comment hay chú thích là thành phần rất hay dùng khi lập trình, đối với hầu
hết các ngôn ngữ chúng dùng để diễn đạt chức năng của một đoạn lệnh hay
đánh dấu nhằm dễ đọc, dễ quan sát đối với việc trình bày. Chúng không hề
có chức năng thi hành và sẽ được trình điều khiển bỏ qua khi đọc đến. Và
AutoIt hỗ trợ hai dạng chú thích. Chú thích theo dòng (sử dụng dấu chấm
phẩy để báo hiệu) và chú thích theo đoạn (sử dụng cặp #cs. #ce) để rào các
dòng chú thích bên trong. Ví dụ : ; this is a first comment line ; this is a second comment #cs . . . .comment start Comment 1 Comment 2 . . . . comment end #ce
MsgBox(0, "msg", "Welcome to AutoIT") KHAI BÁO BIẾN
Biến là một đại diện cho vùng địa chỉ nào đó trong bộ nhớ, mà ở đó dữ liệu được
lưu trữ. Tuy nhiên ở đây ta không đề cập đến vấn đề dữ liệu được chứa trong bộ
nhớ như thế nào. Ta chỉ cần biết, biến là một đại diện mang giá trị ta cần tính toán.
Trong AutoIt, một biến hợp lệ phải có tên được bắt đầu với ký tự $ và sau đó là các
ký tự alpha(a-z, A-Z), ký số (0-9) và dấu gạch dưới _. Ví dụ : $var1 $my_variable $123 $String_temp $abc@ $love.baby
--> đây là hai biến không hợp lệ
Để khai báo một biến, biến đó phải được tạo với một trong các từ khóa Global,
Local hay Dim. Các từ khóa này có chức năng giới hạn phạm vi tồn tại và sử dụng của biến. Ví dụ : Global $var1, $title Dim $m, $name
Global: chỉ định khai báo một biến có phạm vi toàn cục. Nghĩa là mọi nơi
trong chương trình đều có thể truy xuất, chỉnh sửa nội dung của biến
này. Và biến này sẽ tồn tại cho đến khi chương trình thoát ra. Ví dụ : Global $m = "Hello world" MsgBox(0, "MSG", $m) _RepText() MsgBox(0, "MSG", $m) ; định nghĩa hàm Func _RepText() $m &= ", " &$m EndFunc
Đầu tiên ta tạo ra một biến $m và cho hiển thị nội dung của nó là " Hello world".
Sau đó hàm _RepText() được gọi để lặp lại nội dung của biến $m. Hàm MsgBox
thứ hai sẽ hiển thị "Hello world, Hello world". Do $m là biến toàn cục nên ta có
thể sửa đổi tùy ý giá trị của nó.
Local: chỉ định khai báo một biến có phạm vi cục bộ. Tức là nó chỉ được
phép sử dụng, thao tác ở phạm vi giới hạn trong chương trình, thường là
ở bên trong các hàm. Nó sẽ được khởi tạo khi hàm được gọi và sẽ bị
hủy khi hàm kết thúc. Những nơi khác trong chương trình không hề biết
sự tồn tại của biến Local này. Ví dụ :
; chương trình sau sẽ chạy command line _ExeProg() ; sẽ thực thi cmd Run($prog) ; dòng này sẽ báo lỗi Func _ExeProg() Local $prog = "cmd" Run($prog) EndFunc
Trong chương trình trên, sau khi hàm _ExeProg() được gọi và thực hiện xong thì
biến cục bộ $prog bị hủy, cho nên lệnh Run($prog) không được thực thi vì $prog
bên ngoài không mang một giá trị nào. Nói cách khác $prog bên trong hàm
_ExeProg và $prog bên ngoài hoàn toàn khác nhau.
Bạn chú ý một điều là, nếu bên trong một hàm, bạn khai báo một biến cục bộ cùng
tên với một biến toàn cục thì biến cục bộ sẽ được ưu tiên sử dụng thay vì biến toàn
cục. Khi nào tìm hiểu đến phần định nghĩa hàm, bạn sẽ hiểu rõ hơn về biến cục bộ.
Vì trong hàm rất thường sử dụng biến local để tính toán, lưu trữ giá trị.
Dim : Tạo ra một biến có phạm vi cục bộ (local) nếu như biến này chưa
được khai báo trước đó ở dạng toàn cục (global). Có nghĩa là :
Nếu khai báo biến bên ngoài hàm thì nó có phạm vi toàn cục. Ví dụ :
; đoạn mã sau sẽ cho gọi calculator thay vì notepad Dim $p = "notepad" _modify() Run($p) Func _modify() $p = "calc" EndFunc
Nếu khai báo bên trong hàm thì phạm vi là cục bộ. Tuy nhiên, nếu biến Dim này
cùng tên với một biến Global, thì nội dung của biến Global sẽ bị viết đè. Điều này bạn nên chú ý. Ví dụ :
; đoạn mã này sẽ duyệt thư mục Temp thay vì thư mục Windows
Global $explore = "Explorer " & @WindowsDir function() Run($explore) Func function()
Dim $explore = "Explorer " & @TempDir EndFunc
Trong các ví dụ trên, ta thấy rằng việc khai báo một biến có thể kết hợp với việc
khởi tạo giá trị ban đầu cho biến đó. Theo mặc định, nếu bạn không gán giá trị khi
khai báo thì biến đó mang giá trị 0 (nếu sử dụng như một kiểu number) hoặc ""
(nếu sử dụng như một kiểu string).
Dù rằng AutoIt cho phép bạn sử dụng một biến không cần khai báo, nhưng sẽ thật
không hay khi chương trình của bạn có nhiều biến được tạo rải-rác ở nhiều nơi.
Tính trật tự và thống nhất sẽ không đạt hiệu quả vì bạn khó kiểm soát được các đối
tượng của mình trong hàng tá dòng lệnh đan xen nhau. Cũng xin nói thêm, nếu bạn
sử dụng một biến không có khai báo trước đó, tùy trường hợp vận dụng, thì hoặc là
chương trình sẽ báo lỗi, hoặc là biến đó sẽ được tạo tự động với phạm vi cục bộ
(Local). Nếu bạn khai báo một biến Local bên ngoài hàm thì nó vẫn có phạm vi như Global.
Khi khai báo một biến, bạn nên chỉ định rõ phạm vi là Local hoặc Global, nên hạn
chế dùng Dim. Trừ khi bạn nắm rõ được tất cả các biến trong chương trình của
mình, nhằm tránh các lỗi về việc chỉnh sửa dữ liệu không mong muốn có thể xảy ra. KHAI BÁO HẰNG SỐ
Hằng số là một biến mang giá trị cố định và giá trị này chỉ được gán một lần khi
khởi tạo. Bất kỳ thao tác nào cố gắng thay đổi nội dung của hằng số đều là thao tác không hợp lệ.
Việc khai báo hằng số cũng giống như việc khai báo biến, nhưng bạn cần đặt thêm
từ khóa Const. sau Dim, Global hoặc Local. Có dạng như sau : Const $pi = 3.14 ; hằng số cục bộ Local $text = "Hello" ; hằng số cục bộ
Global Const $e = exp(1) ; hằng số toàn cục
Chú ý : bạn không thể khai báo một hằng số trùng tên với một biến đang tồn tại. KHAI BÁO MỘT MẢNG
Mảng thực chất là một tập hợp các biến có cùng kiểu dữ liệu được gọi chung
bằng một tên. Các biến trong một mảng thường được gọi là "phần tử" và được
truy cập đến bởi chỉ mục. Các mảng có thể có một hay nhiều chiều, thông
dụng nhất là mảng một chiều (danh sách) và mảng hai chiều (ma trận gồm hàng và cột).
MẢNG MỘT CHIỀU (DANH SÁCH)
Mảng một chiều là dãy gồm nhiều mục liên tiếp nhau. Bạn cứ hình dung nó như
là một cái danh sách. Cũng có số thứ tự, cũng có thông tin (dữ liệu) ứng với thứ tự đó.
Hình thức cơ bản cho việc khai báo mảng một chiều là : []
: cho biết đây là biến Local, Global hay Dim