Tải bản đầy đủ (.pdf) (27 trang)

Ngôn ngữ lập trình dành cho mọi người docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (950.12 KB, 27 trang )

NGÔN NG L P TRÌNH DÀNH CHO M I NG I !Ữ Ậ Ọ ƯỜ
<Nhi u khi code c a tui có m t s l nh “m i l ”, nh ng r t hay ! ^^ >ề ủ ộ ố ệ ớ ạ ư ấ
-designed by Lý Th Minh – nick : autoboy195 – Y!m : unluckystar_195ế
borned : 20-2-1995 ^^!
-Time : 10:25PM 18.2.10 (( tut có 32 trang)
Tui s c trình bày 1 cách d hi u nh t ! ẽ ố ễ ể ấ
<tui t s u t m và t biên t di n ^^ - có ch nào ko h u xin th l i!>ự ư ầ ự ự ễ ỗ ỉ ứ ỗ
Menu nhanh
[==================== Menu ============================]
M t vài thao tác v i notepadộ ớ
Cho phép user t t formắ
GUI
C u trúc r nhánhấ ẽ
C u trúc l pấ ặ
[=====================================================]
Chương I : Lập trình cơ bản
Bài 1 : làm quen !
1. M ch ng trình AutoIT đ l p trìnhở ươ ể ậ
Tên ch ng trình : SciTe Script Editorươ
Giao di n nh sau :ệ ư
2. M t ch ng trình đ n gi n ộ ươ ơ ả
Đ hi n th Ti ng Vi t có d u trong AutoIT, b n hãy làm nh sau :ể ể ị ế ệ ấ ạ ư
File > Encoding > UTF – 8 with BOM ho c UCS-2 Big Endianặ
L p trình nào ^^ậ
☺ L u ý : ư
- B t c ch ng trình AutoIt (vi t t t là auto) nào đ u ph i l u l i (đ nh d ng *.au3), sau đó m i ch y đ c. Thaoấ ứ ươ ế ắ ề ả ư ạ ị ạ ớ ạ ượ
tác l u :ư
n vào icon Save >> Ch n n i l u >> Saveấ ọ ơ ư
- Đ ch y th ch ng trình, n F5 ( gi ng vb6 nh ^^)ể ạ ử ươ ấ ố ỉ

• Gõ vào dòng sau trong khu v c 3 :ự


Msgbox (0,"Thông báo","Hi n th ti ng vi t 100% ^^")ể ị ế ệ
Save nó l i, bây gi n F5 đ ch y, 1 ch ng trình nh c a b n đã hình thành !ạ ờ ấ ể ạ ươ ỏ ủ ạ
Tuy t v i, ch ng trình hi n th Unicode r t chu n, không b l i nh vb6 ^^.ệ ờ ươ ể ị ấ ẩ ị ỗ ư
• Chuy n thành File exe :ể
Có r t nhi u cách, nh ng có m t cách r t đ n gi n là truy c p đ n th m c ch a file *.au3 , nháy ph i vào file này vàấ ề ư ộ ấ ơ ả ậ ế ư ụ ứ ả
ch n Complite Script . N u ko có l i gì thì l p t c b n đã có 1 file *.exe hoàn ch nh rùi ! Ti n l i h n là ch có 1 file duyọ ế ỗ ậ ứ ạ ỉ ệ ợ ơ ỉ
nh t !ấ
Đây là file vidu.au3 Đây là file vidu.exe
☻ K t thúc :ế
- L nh m thông báo đ n gi n:ệ ở ơ ả
1 – Thanh menu
2 – Thanh công cụ
3- Khu v c so nự ạ
th oả
4 – Thanh tr ng tháiạ
Msgbox ([ki u thông báo 0~6],“[Tiêu đ ]”,“[Text]”)ể ề
Bài 2 : Ch y ch ng trình :ạ ươ
B n hãy vào AutoIt script r i gõ dòng sau vào :ạ ồ
Run (“notepad”)
Câu này có nghĩa là Ch y notepad.exe trong máy c a b nạ ủ ạ
R i gõ ti p :ồ ế
WinWaitActive ( "Untitled - Notepad") ; không dc đ i tiêu đ !ổ ề
Xem thêm (r t quan tr ng !)ấ ọ
Có nghĩa là ch c a s notepadờ ử ổ
Gõ ti p dòng này vào :ế
Send("This is some text.")
Có nghĩa là : G i dòng ch trên cho notepad đang m !ử ữ ở
Và đây là dòng cu i cùngố
WinClose ( "Untitled - Notepad")
Dùng đ đóng Notepad.ể

T ng h p, ta có code nh sau :ồ ợ ư
run ("notepad") ; ch y notepadạ
WinWaitActive ( "Untitled - Notepad") ;ch notepadờ
Send("This is some text.") ; g i text đ n notepadử ế
WinClose ( "Untitled - Notepad") ; đóng notepad
; Thao tác nhanh nh đi n x t v y ^^ư ệ ẹ ậ
; là chú thích !
Bây gi n F5, b n s th y các công vi c x y ra l n l t :ờ ấ ạ ẽ ấ ệ ả ầ ượ
- M notepadở
- M notepad có tiêu đ là Utitled – notepadở ể
- Gõ dòng ch This is some text vào notepadữ
- Thoát notepad, hi n ra b ng tùy ch n thoátệ ả ọ
(Ch p, cái ch “Thí í some text” là do tui b t unikey ^^)ẹ ỗ ậ
B n th y hay ch a ? Th m i là Auto !ạ ấ ư ế ớ
☺ Cách dùng hi u qu l nh WinwaitActive :ệ ả ệ
Qu đúng nh tên g i ! AutoIT đã giúpả ư ọ
chúng ta th c hi n Thao tác v iự ệ ớ
notepad ch trong 1s mà ch v i vàiỉ ỉ ớ
dòng code d hi u ! Đi u này r t khóễ ể ề ấ
v i các ngôn ng nh vb6,…ớ ữ ư
B n m ch ng trình đó lên trong windows, ví d notepad :ạ ở ươ ụ
Chép dòng ch có khoanh tròn tiêu đ - ữ ề vào đâu đó. Dòng ch đó s dùng cho v trí này trong AutoIt:ữ ẽ ị
-N u tiêu đ dài ho c b n “l i” chép ^^, hãy dùng công c Windows Info có s n c a AutoItế ề ặ ạ ườ ụ ẵ ủ
B c 1 : ch y notepadướ ạ
B c 2 : Ch y windows infoướ ạ
☻ K t thúc :ế
• Câu l nh đ ch y ch ng trình : ệ ể ạ ươ run (“[tên ch ng trình]”)ươ
* tên ch ng trình ho c đ ng d n ch ng trìnhươ ặ ườ ẫ ươ
• Câu l nh đ ch ch ng trình đó : ệ ể ờ ươ WinWaitActive (“[tiêu đ ]”)ề
• Câu l nh đ g i text đ n ch ng trình đó : ệ ể ử ế ươ send (“[text mu n g i]”)ố ử

n u mu n g i kí t “#”, gõ l nh sau :ế ố ử ự ệ
Send (“# d u thăng”,1) ấ  cho flag là 1
• Câu l nh đ đóng ch ng trình đó : ệ ể ươ winclose (“[tiêu đ ]”)ề
[H c l p trình thì không th không n m v ng căn b n, mà mu n n m v ng căn b n thìọ ậ ể ắ ữ ả ố ắ ữ ả
ph i n m v ng lí thuy t đã, r i ki n th c s đ c c ng c qua th c hành, h c t t ,ả ắ ữ ế ồ ế ứ ẽ ượ ủ ố ự ọ ừ ừ
s vào ^^]ẽ
Bài 3 : Khai báo
- Tui s đi nhanh ph n này, nh ng ko b sót các ph n quan tr ng nh t !ẽ ầ ư ỏ ầ ọ ấ
• Khai báo bi nế : Các bi n đ c khai báo và t o ra v i các t khóaế ượ ạ ớ ừ Dim, local và global: (ph m vi s d ng : global >ạ ử ụ
local > dim)
Dim $var1
Ho c b n cũng có th khai báo nhi u bi n cùng m t lúc: ặ ạ ể ề ế ộ
Dim $var1, $myvariable
Đ a con trư ỏ
chu t vàoộ
tiêu đề
notepad, sau
đó copy từ
ch này !ỗ
B n cũng có th ch đ nh m t bi n màạ ể ỉ ị ộ ế không c nầ khai báo (nh ngư Tui khuy n kíchế khai báo tr c). ướ
$Var1 = "abc"
• Khai báo h ngằ (constants)
Constants đ c công b và t o ra b ng cách s d ng Const ượ ố ạ ằ ử ụ t khóa nh : ừ ư
Const $const1 = 1, $const2 = 12
Constants có th đ c công b và s d ng Enumể ượ ố ử ụ nh sau: ư
Enum $const1 = 1, $const2, $const3 ; 1, 2, 3
Enum STEP 2 $incr0, $incr2, $incr4 ; 0, 2, 4
Enum STEP *2 $mult1, $mult2, $mult4 ; 1, 2, 4
Arrays (m ng)ả
Array là m t bi n có ch a m t lo t các d li u thành ph n c a cùng m t lo i và kích c . M i y u t trong bi n này cóộ ế ứ ộ ạ ữ ệ ầ ủ ộ ạ ỡ ỗ ế ố ế

th đ c truy c p b i m t s ch m c. ể ượ ậ ở ộ ố ỉ ụ
Ví d : ụ
Hãy nói b n mu n l u tr nh ng lo t ký t : "A", "U", "T", "O", "I", "T" và "3". ạ ố ư ữ ữ ạ ự
B n có th s d ng b y các bi n riêng bi t đ làm nh th , nh ng b ng cách s d ng m t Array là hi u qu h n: ạ ể ử ụ ả ế ệ ể ư ế ư ằ ử ụ ộ ệ ả ơ
$Array [0] = "A"
$Array [1] = "U"
vv.
$Array [6] = "3"
Đ truy c p m t giá tr c th trong m t Array, b n ch c n bi t các ch m c s : ể ậ ộ ị ụ ể ộ ạ ỉ ầ ế ỉ ụ ố
$MyChar = $Array [2]
Các k t qu này trong $MyChar có ch a ch "T" ế ả ứ ữ
Các ch m c s cũng có th đ c thay th b i m t bi n ho c m t bi u, do đó, b n có th xây d ng ph c t p cách đ chỉ ụ ố ể ượ ế ở ộ ế ặ ộ ể ạ ể ự ứ ạ ể ỉ
đ nh ho c truy c p vào m t y u t trong m ng đó. ị ặ ậ ộ ế ố ả
Arrays cũng có th đ c nhi u chi u, khi b n s d ng nhi u lo t các ch m c s , nh : ể ượ ề ề ạ ử ụ ề ạ ỉ ụ ố ư
$Array[0][0]="Upper-Left"
$Array[1][0]="Lower-Left"
$Array[0][1]="Upper-Right"
$Array[1][1]="Lower-Right"
(Nh ng giá tr này ch là ví d ) ữ ị ỉ ụ
B n có th s d ng đ n 64 trong m t kích th c Array. T ng s các m c có th không đ c l n h n 2 ^ 24 (16 777ạ ể ử ụ ế ộ ướ ổ ố ụ ể ượ ớ ơ
216).
Tr c khi b n có th b t đ u s d ng Arrays trong t p l nh c a b n, b n ph i xác đ nh bounds c a h b ng cách sướ ạ ể ắ ầ ử ụ ậ ệ ủ ạ ạ ả ị ủ ọ ằ ử
d ng ụ ' Dim ' t khóa. ừ
Lo i d li u trong Arrays ạ ữ ệ
Nó đã đ c cho r ng ch ch a m t Array ượ ằ ỉ ứ ộ m t ộ d li u c a cùng m t lo i. Tuy nhiên, k thu t nói, m t trong AutoItư ệ ủ ộ ạ ỹ ậ ộ
Ngôn ng đ a ph ng có th ch a b t c th gì t m t s vào m t giá tr boolean. Vì v y, m t Array-AutoIt cũng có thữ ị ươ ể ứ ấ ứ ứ ừ ộ ố ộ ị ậ ộ ể
ch a khác nhau lo i, th m chí khác Arrays: ứ ạ ậ
$Array[0]=1
$Array[1]=true
$Array[2]="Text"

$Array[3]=$AnotherArray
Đi u này đã b c m không đ c ch t ch trong AutoIt. Tuy nhiên, nó là ề ị ấ ượ ặ ẽ KHÔNG Khuy n khích ế đ k t h p khác nhauể ế ợ
trong m t datatypes Array. Đ c bi t là vi c s d ng m t Bên trong m t m ng Array nghiêm s nh h ng đ n vi c th cộ ặ ệ ệ ử ụ ộ ộ ả ẽ ả ưở ế ệ ự
hi n t c đ c a b n t p l nh. ệ ố ộ ủ ạ ậ ệ
☻ K t thúc ế
- Khai báo bi n : ế Dim $tên_bi n_1,$tên_bi n_2ế ế
- Khai báo h ng : ằ Const $tên_bi n_1 = [giá tr c a h ng]ế ị ủ ằ
Ví d : Const $bien1 = 1, $bien2 = 2ụ
- Khai báo m ng Array : ả
+ m t chi u : ộ ề $tên_m ng[s th t m ng]= [giá tr m ng]ả ố ứ ự ả ị ả
Vidu :
$mang1[0]=A
$mang1[1]=u
$mang1[2]=t
$mang1[3]=o
+ nhi u chi u : (r t ph c t p!)ề ề ấ ứ ạ
$mang1[0][0] = 1
$mang1[0][1] = 11
$mang1[1][0] = 111
$mang1[1][1] = 1111
Bài 4: Các toán t (r t nhanh thui !)ử ấ
Toán tử Mô tả
= Gán . vd : $var1 = “Hello”
+= C ng thêm : $var1 += 3 (tăng giá tr cho bi n var1 thêm 3 đ n v )ộ ị ế ơ ị
- = Tr thêm : ừ
*= Nhân thêm
/ = Chia thêm
& = N i : dim $aố
$a = “Auto”
$a &= “ It” ; k t qu a = “Auto It”ế ả

^ Lũy th aừ
== B ng (đ i v i chu i) : vd : ằ ố ớ ỗ
dim $a
$a = “hello”
if $a == “hello” then exit
end if
<> Khác
> L n h nớ ơ
< Nh h nỏ ơ
>= L n h n ho c b ngớ ơ ặ ằ
<= Nh h n ho c b ngỏ ơ ặ ằ
And Logic và: đúng n u 2 dk đúng, sai n u 1 trong 2 saiế ế
Or Logic ho c : đúng n u 1 trong 2 đúng, sai n u c hai sai ặ ế ế ả
Not Logic Không : vd : Không 1 (sai)
Đ u tiên cao nh t >> th p nh t :ộ ư ấ ấ ấ
( )
Not
^
* /
+
&
<> <=> = = <> ==
VÀ HO C Ặ
Vd: 2+4*10 = 42
(2+4)*10 = 60
Bài 5 : C u trúc r nhánhấ ẽ
• If …then … Else … End if

if [dk TRUE] then
[l nh th c hi n n u dk đúng]ệ ứ ệ ế

else
[l nh th c hi n n u dk FALSE]ệ ứ ệ ế
Endif
Đúng là TRUE, sai là FALSE
Ví d :ụ
dim $a ; Khai báo bi n aế
$a = inputbox ("Nh p m t s ","Nh p 1 s b n nghĩ:") ậ ộ ố ậ ố ạ ; a = s b n gõố ạ
if $a = "10" Then ; N u a = 10 thìế
msgbox (0,"S b n gõ","B n đã nh p s 10") ố ạ ạ ậ ố ; Hi n thông báo nh p đúngệ ậ
else ; Ng c l iượ ạ
msgbox (0,"S b n gõ","B n đã nh p không ph i s 10ố ạ ạ ậ ả ố ") ; Hi n thông báo nh p saiệ ậ
Endif ; K t thúc Ifế
n F5 đ ch y, b n hãy t test !ấ ể ạ ạ ự
• Switch … EndSwitch
Th c ra trong AutoIt còn có c u trúc SELECT … CASE n a, nh ng c u trúc này đòi h i ph i vi t đi vi t l i nhi u l nự ấ ữ ư ấ ỏ ả ế ế ạ ề ầ
bi n, nên Tui dùng c u trúc này, ng n g n h n r t nhi u.ế ấ ắ ọ ơ ấ ề
Ví d :ụ
dim $var ; Khai báo bi n varế
$var = inputbox ("Nh p","Nh p 1 s ") ậ ậ ố ; Gán var = s b n ch nố ạ ọ
Switch Int($var)
Case 1 To 10 ; N u var t 1 đ n 10ế ừ ế
MsgBox(0, "Ví d ", "S b n nh p l p h n 1")ụ ố ạ ậ ớ ơ
Case 11 To 20 ; N u var t 11 đ n 20ế ừ ế
MsgBox(0, "Ví d ", "S b n nh p l p h n 10")ụ ố ạ ậ ớ ơ
Case 21 To 30 ;
MsgBox(0, "Ví d ", "S b n nh p l p h n 20")ụ ố ạ ậ ớ ơ
Case 31 To 40 ;
MsgBox(0, "Ví d ", "S b n nh p l p h n 30")ụ ố ạ ậ ớ ơ
Case Else ; N u var không n m trong kho ng trênế ằ ả
MsgBox(0, "Ví d ", "S b n nh p l p h n 40 ho c nh h n 0")ụ ố ạ ậ ớ ơ ặ ỏ ơ

EndSwitch
Int đ l y ph n nguyên . Vidu : Int(7,36) -> s b ng 7ể ấ ầ ẽ ằ
**Xu ng dòng :ố
- Khi mu n xu ng dòng, dùng l nh @CrLf (khác v i vb6 là vbCrLf)ố ố ệ ớ
Dim $a
$a = “AutoIt !^^”
msgbox (0,“Xu ng dòng – lytheminh”,“Chào m ng các b n đ n v i” & @CrLf & $a)ố ừ ạ ế ớ
**Chu i ch a ngo c kép :ỗ ứ ặ
- So sánh 2 code sau :
dim $a
$a = ' Chào m ng các b n đ n v i ừ ạ ế ớ "AutoIt" ^^ '
msgbox (0,"Thông báo",$a)

dim $a
$a = “Chào m ng các b n đ n v i ừ ạ ế ớ "AutoIt"^^ ”
msgbox (0,"Thông báo",$a)
Cùng 1 code, cùng 1 ch c năng là hi n th thông báo, nh ng code 1 ch y đ c, còn code 2 ko ch y dc !ứ ể ị ư ạ ượ ạ
K t lu n : ta có công th c t ng quát sau :ế ậ ứ ổ
' văn b n bình th ng “ văn b n ch a d u ngo c kép” ả ườ ả ứ ấ ặ '
Ví d mu n hi n th câu : R ng là “lá ph i xanh” c a trái đ tụ ố ể ị ừ ổ ủ ấ
MsgBox(0, "Ví d ", ụ ' R ng là "lá ph i xanh" c a trái đ t ừ ổ ủ ấ ')
Hjz, thui thì c vi t c u trúc kia v y (đ n gi n thôi)ứ ế ấ ậ ơ ả
• C u trúc Select … caseấ
Select
Case <đi u ki n 1>ề ệ
<các câu l nh>ệ

Case <đi u ki n 2>ề ệ
<các câu l nh>ệ


Case Else
<các câu l nh>ệ

EndSelect
• C u trúc if l ng nhau – b c thang Ifấ ồ ậ
C u trúc này r t hay s d ng trong AutoIt, vì v y b n hãy ấ ấ ử ụ ậ ạ đ c th t kĩọ ậ !
C u trúc chung , xét ví d sau :ấ ụ
Quote : trích d nẫ
#cs
AutoIt Version: 3.3.0.0
Author: Autoboy195
Script Function:
Template AutoIt script.
#ce
; Script Start - Add your code below here
; M ch ng trìnhở ươ
global $a,$b,$dl ; global dùng đ khai báo bi n, nh ng ph m vi r ng h n dimể ế ư ạ ộ ơ
$a = "text : ch y notepad"ạ
$b = "văn b n : ch y microsoft word"ả ạ
msgbox (0,"Tiny Soft","B n hãy gõ các dòng t ng ng v i các l nh sau : " & @Crlf & @Crlfạ ươ ứ ớ ệ
& $a & @crlf & $b) ; xu ng dòng … đã h c rùi :Dố ọ
; nh p li uậ ệ
$dl = inputbox ("Enter to here","Nh p l nh đ m ch ng trình : ")ậ ệ ể ở ươ
if $dl = "text" Then ; câu l nh 1ệ
run ("notepad") ; h t câu l nh 1ế ệ
ElseIf $dl = "văn b n" ả Then ; câu l nh 2ệ
run ("C:\Program Files\Microsoft Office\Office10\WINWORD.exe") ; h t câu l nh 2ế ệ
Else ; ng c l iượ ạ
msgbox (0,"Thông báo tu do'ng sau 2 giay","Không có l nh này !",2)ệ
EndIf ; k t thúcế

Code có th sai n u đ ng d n (path) c a word ch khác !ể ế ườ ẫ ủ ở ỗ
○ Ch y th ch ng trình (F5)ạ ử ươ
Sau khi n OK, word hi n ra ! ấ ệ
N u gõ linh tinh thì thông báo hi n ra, sau 2s t t t !ế ệ ự ắ
○ Phân tích code
- khai báo 2 bi n (a,b) cho ch ng trình, m i bi n ch a 1 dòng textế ươ ỗ ế ứ
- khai báo 1 bi n ch a d li u khi nh p vào inputbox (dl)ế ứ ữ ệ ậ
- hi n thông báoệ
- hi n input boxệ
- x lí l nhử ệ
+ N u nh p “text” thì ch y notepadế ậ ạ
+ N u nh p “văn b n” thì ch y wordế ậ ả ạ
+ N u ko nh p j ho c nh p lung tung thì hi n thông báo l i, sau đó 2s t t t !ế ậ ặ ậ ệ ỗ ự ắ
☻ Bài h c ọ
1. Khai báo bi n m i có th dùng globalế ớ ể
2. C u trúc If l ng nhau :ấ ồ
If <dk1> then <l nh 1>ệ
elseif <dk2> then <l nh 2>ệ
elseif <dk3> then <l nh 3>ệ

elseif (dk n) then <l nh n>ệ
else ; ng c l i hay không có giá tr nào th a mãnượ ạ ị ỏ
<l nh th c hi n>ệ ứ ệ
EndIf
3. l nh run ("đ ng d n ch ng trình")ệ ườ ẫ ươ
4. Timeout : th i gian đ thoát ch ng trìnhờ ể ươ
ví d : msgbox (0,"","",2) tính b ng giâyụ ằ
H t bài ^^ế
Bài 6 : C u trúc l pấ ặ
Phù !! Sau khi b n đã hi u h t bài h c t 1 đ n 5, hãy ngh gi i lao 30’ rùi h c típ nhé ạ ể ế ọ ừ ế ỉ ả ọ

• C u trúc While … Wendấ (gi ng ố while … do trog pascal í mà )
C u trúc chung nè :ấ
===================================
While <đi u ki n> ề ệ
<các câu l nh>ệ

Wend ; k t thúc vòng l p n u đi u ki n saiế ặ ế ề ệ
<l nh th c hi n khi đi u ki n sai>ệ ự ệ ề ệ
===================================
S đ cô đ ng (Nhìn là h u ngay ^^)ơ ồ ọ ỉ
Ví d :ụ
Dim $i ; t o bi n iạ ế
$i = 0 ; Gán i = 0
While $i <= 10 ; N u i <= 10 thìế
Msgbox (0,“ Giá tr c a i là”,$i) ị ủ ; hi n thông báo giá tr c a iệ ị ủ
$i = $i + 1 ; tăng d n bi n i lên 1 đ n vầ ế ơ ị
Wend ; N u i > 10 (t c là sai đi u ki n) thìế ứ ề ệ
Msgbox (0,“Thong bao”,“Vòng l p đã d ng l i vì i > 10”)ặ ừ ạ
○ Phân tích code :
- …
- So sánh i v i 10 (vì i ban đ u cho là 0 rùi nên đi u ki n 0 < 10 luôn đúng )ớ ầ ề ệ
Đi u ề
ki n?ệ
Câu l nhệ
Đúng
Sai
Đ u tiên ch ng trình ki m traầ ươ ể
đi u ki n :ề ệ
• N u DK đúng thì th c hi n câuế ự ệ
l nhệ

• Quay l i ki m tra DK, n uạ ể ế
đúng n a thì th c hi n câu l nh,ữ ự ệ ệ
n u sai thì thoát kh i vòng l p !ế ỏ ặ
While
Wend
- Nên l nh msgbox đ c th c hi n và bi n i dc tăng lên 1 đ n vệ ượ ự ệ ế ơ ị
- Tăng đ n 1 m c nào đ y, bi n i > 10 thì l nh sau wend dc th c hi n và k t thúc vòng l p.ế ứ ấ ế ệ ự ệ ế ặ
C u trúc này h i khó, nh ng b n nào đã n m v ng c u trúc while … do trog pascal thì th y chúng ko đ n n i khó !ấ ơ ư ạ ắ ữ ấ ấ ế ỗ
Hãy test code trên đ hi u thêm ể ể  !
Và : m t ng d ng r t hay c a c u trúc trên, đó là cho phép user t t ch ng trình b ng cách n nút “X” ( b n c thộ ứ ụ ấ ủ ấ ắ ươ ằ ấ ạ ứ ử
làm 1 GUI r i không copy code sau vào form xem, đ b n t t dc ch ng trình khi nh n nút “X” đ y :D)ồ ố ạ ắ ươ ấ ấ
while 1
if GuiGetMsg() = $GUI_EVENT_CLOSE then
exit
endif
wend
Hãy copy code trên vào form khi b n mu n t t form b ng nút “X” !ạ ố ắ ằ
Trong đó : 1 t c là enable, 0 t c là disableứ ứ
• C u trúc For … Nextấ
C u trúc này thì d rùi :ấ ễ
== ===============
For <$tên bi n> = <giá tr đ u> ế ị ầ to <giá tr cu i>ị ố
<l nh th c hi n>ệ ự ệ
Next
<l nh th c hi n khi bi n v t giá tr cu i>ệ ự ệ ế ượ ị ố
== ==================
Ví d (cái này d quá nên ko c n form, g i ý : có 5 msgbox ^^)ụ ễ ầ ợ
Dim $i
For $i = 1 to 5
Msgbox (0,“Day la thong bao thu”,$i)

Next
Msgbox (0,“Thong bao”, “An OK de thoat !”)
• C u trúc Do … Untilấ (gi ng trong pascal)ố
Cú pháp :
== =========================================
Do
<các câu l nh>ệ

Until <đi u ki n>ề ệ
== ===============================================
(*) ng d ng r t hay trong “Auto” – đó là :Ứ ụ ấ
◘ T đ ng Click chu t trái (click chu t ph i thì thay left >> right)ự ộ ộ ộ ả
; Vòng l p đ auto Click ặ ể
Do
MouseClick(“left”)
Until 0 ; Đ n khi ch ng trình không ch y n a thì d ngế ươ ạ ữ ừ
; Th c ch t là l p thao tác Click, hay nói cách khác là ng u nhiên t o ra thao tác đúp chu tự ấ ặ ẫ ạ ộ
• hjhj, ai thích auto “b m máu” thì c dùng t nhiên ^^, tui hok ch i game m y, nh ng h c auto thì ph i ch i rùi ơ ứ ự ơ ấ ư ọ ả ơ
M i xem qua ph n m m AutoClick v1.0 – phiên b n đ u tay c a tui ờ ầ ề ả ầ ủ , trong bài GUI s s d ng giao di n đ đi uẽ ử ụ ệ ể ề
khi n form, t c là có label, có form, có button, có combo box … v.vv , giúp cho ph n m m tr nên chuyên nghi p h nể ứ ầ ề ở ệ ơ
CODE : AutoClick phiên b n 1.0 c a autoboy195 ^^ả ủ
#cs
;~ Ch ng trình : T đ ng Click chu t đ n gi nươ ự ộ ộ ơ ả
;~ Thi t k : Lý Th Minh (20.2.1995) - Thanh L ng - Yên Báiế ế ế ươ
;~ Autoit v3.0.0.0
#ce
; Ch ng trình chính ươ
Global $time,$time_final ; ch a th i gianứ ờ
msgbox (0,"Auto Click - autoboy195","Hãy n OK tr c tiên, rùi n F7 đ b t đ u - n F8 đ d ng")ấ ướ Ấ ể ắ ầ Ấ ể ừ
$time = inputbox ("AutoTime to exit program - autoboy195","Gõ vào th i gian c a b n (tính b ng giây) mu nờ ủ ạ ằ ố

ch ng trình t đ ng thoát")ươ ự ộ
$time_final = $time * 1000 ; vì đ n v tính là miligiay nên nhân th i gian c a user v i 1000ơ ị ờ ủ ớ
;
; Hàm đ t đ ng Click ể ự ộ
; AutoClick Function
Func auto() ; không có bi n nào trong hàm autoế
Do ; L p l i thao tác Click -> Nháy đúp ^^ặ ạ
MouseClick("left") ; Click (nhìn là h u, ko c n gi i thich gì thêm)ỉ ầ ả
Until 0 ; L p l i thao tác Click -> Nháy đúp ^^ặ ạ
EndFunc
;End Func
; H t hàm ế
; Hàm đ thoát ch ng trình ể ươ
;Stop Function
Func end()
msgbox (0,"AutoClick - autoboy195"," n OK đ thoát ! c m n b n đã s d ng ch ng trình ^^")Ấ ể ả ơ ạ ử ụ ươ
Exit ; thoát nhanh ch ng trìnhươ
EndFunc
; End Func
Đi u ề
ki n?ệ
Câu l nhệ
Sai
Đúng
Đ u tiên ch ng trình ki m traầ ươ ể
đi u ki n :ề ệ
• N u DK sai thì th c hi n câuế ự ệ
l nhệ
• Quay l i ki m tra DK, n u saiạ ể ế
n a thì th c hi n câu l nh, n uữ ự ệ ệ ế

đúng thì thoát kh i vòng l p !ỏ ặ
Ng c hoàn toàn so v iượ ớ
While … Do , b n c hình dungạ ứ
s đ này trong đ u là đ c !ơ ồ ầ ượ
DO
Until
; H t hàm ế
; Cài đ t phím nóngặ
;Set Hot Keys, cái nè xem thêm bài 7ở
HotKeySet("{F7}","auto")
HotKeySet("{F8}","end")
; Th i gian đ t t t ch ng trình ờ ể ự ắ ươ
;Sleep time
Sleep($time_final) ; lúc này n u user nh p 2 thì chính là 2000 t c là 2 giây !ế ậ ứ
B n có th ch nh s a cho g n h n !ạ ể ỉ ử ọ ơ
Ch y ch ng trình và h ng th thành qu :Dạ ươ ưở ụ ả

Hjz, ngoài ra còn 2 nhi u c u trúc (For…In và With) n a nh ng tác gi “l i” không h c ề ấ ữ ư ả ườ ọ , nh ng cái y tui cònữ ấ
ch a h u h t ư ỉ ế , sau này đ c p đ n thì h c, nh ng c u trúc c b n đã d y h t rùi ^^ ề ậ ế ọ ữ ấ ơ ả ạ ế . Bây gi s chuy n quaờ ẽ ể
m t ph n không kém ph n quan tr ng, đó là …ộ ầ ầ ọ
M i xem bài 7 sau đó xem l i code trên !ờ ạ
Bài 7 : Function – Hàm – ch ng trình conươ
Hì , Tui đ ngh b n nên ngh gi i lao 30 phút tr c khi h c ề ị ạ ỉ ả ướ ọ
1. Khái ni m c b n : Hàm là gì ? ệ ơ ả
Hì, theo tui h u thì nó đ n gi n nh 1 ch ng trình con, khi nào c n đ n thì “g i” lên đ th c hi n l nh ^^ (th thui,ỉ ơ ả ư ươ ầ ế ọ ể ự ệ ệ ế
n u mu n tìm hi u kĩ thì google ế ố ể _ _ ! )
2. Khai báo hàm :
== ==========================
Func tên_hàm($bi n_trong_hàm)ế
<l nh trong hàm>ệ

Return <giá tr > ; tr l i giá tr cho hàm (n u có)ị ả ạ ị ế
EndFunc ; k t thúc hàmế
== =============================
* $bi n_trong_hàm không c n khai báo !ế ầ
○ Ví d ụ v s d ng hàm trong vi c hi n th msgboxề ử ụ ệ ể ị :
dim $a
$a = InputBox("","Go so 1")
if $a = 1 Then ; N u user gõ s 1 thìế ố
tb() ; g i hàm tbọ
Else ; n u gõ saiế
msgbox (0,"","Go sai !") ; hi n thông báoệ
EndIf
Func tb() ; Hàm tb
msgbox (0,"","Thong bao bang ham") ; l nhệ
EndFunc ; k t thúc hàm tbế
Ch y th : ạ ử
n OKẤ
Gõ khác s 1 :ố
Trong ví d trên, hàm tb() đã đ c g i n u user nh p s 1 !ụ ượ ọ ế ậ ố
○ Ví d ụ v s d ng hàm b ng cách dùng phím nóngề ử ụ ằ
#cs
AutoIt Version: 3.3.0.0
Author: autoboy195
Script Function:
Func to soft !
#ce
; Script Start - Add your code below here
;Global $a,$b thêm ho c b cũng đ cặ ỏ ượ
msgbox (0,"vi du"," n OK, sau đó Gõ ch s đ ch y ch ng trình, gõ ch t đ thoát ch ngẤ ữ ể ạ ươ ữ ể ươ
trình") ; hi n thông báoệ

func h1($a) ; == hàm 1 ==
$a = "Ví d vê func - đi u khi n b ng phím nóng"ụ ề ể ằ
msgbox (0,"Thong bao - chuong trinh tu tat sau 8 giay",$a)
EndFunc ; == k t thúc hàm 1 ==ế
Func h2($b) ; == hàm 2 ==
$b = "C m n đã s d ng !"ả ơ ử ụ
msgbox (0,"Thong bao - code by autoboy195",$b)
Exit ; l nh đ t t nhanh ch ng trìnhệ ể ắ ươ
EndFunc ;== h t hàm 2 ==ế
HotKeySet("{s}","h1") ; phím nóng : n u user gõ s thì hàm 1 đ c g i lênế ượ ọ
HotKeySet("{t}","h2") ; phím nóng : n u user gõ t thì hàm 2 đ c g i lênế ượ ọ
Sleep(8000) ; N u không g i hàm 2 thì sau 8 giây ch ng trình t t t (1000 = 1s)ế ọ ươ ự ắ
Copy vào forrm đi đã, phân tích sau ! không thì m t l m đ y ^^ ệ ắ ấ
* Code trên ch y không b l i ! Tui đã test rùi ! N u b n ko ch y dc thì hãy nh chuyên gia v AutoIt c a b n (Vìạ ị ỗ ế ạ ạ ờ ề ủ ạ
chính tác gi cũng ko rõ m y, vì tác gi ch vi t theo “s hi u” c a mình thui ^^, nh ng nh Encoding là …BOM…ả ấ ả ỉ ế ự ể ủ ư ớ
nhá (xem bài 1) )
• Ch y ch ng trình (F5)ạ ươ
n OK. N u b n gõ ch s (ch “s”) , thông báo sau hi n raẤ ế ạ ữ ữ ệ
* L u ý : thông báo đ u tiên, khi b n n OK, t c là trong 8 giây đó, dù b n không th y form nh ng v n đang ch yư Ở ầ ạ ấ ứ ạ ấ ư ẫ ạ
ng m ! Sau 8 giây, n u b n không n nút gì ho c n ngoài 2 nút trên thì m c đ nh ch ng trình s t t ! (vì code cóầ ế ạ ấ ặ ấ ặ ị ươ ẽ ắ
l nh ệ Sleep(8000) )< ch y ng m chính là cách th c chung c a virus !! ^^>ạ ầ ứ ủ
N u b n gõ ch t (ch “t”)ế ạ ữ ữ
Sau khi n OK thì ch ng trình t t luôn ! Vì trong hàm 2 có câu l nh ấ ươ ắ ệ Exit , có tác d ng t t ngay l p t c ch ng trìnhụ ắ ậ ứ ươ
(nói nh v y không bi t đúng không ^^, vì t c đ tính b ng miligiay ch ko ph i giây nên sai s ch c cũng khôngư ậ ế ố ộ ằ ứ ả ố ắ
nh ỏ , thui, xin ch m d t cái suy lu n ng c ngh ch c a tui t i đây !)ấ ứ ậ ố ế ủ ạ
K t lu n : ế ậ
- Hàm đ ch y phím nóng :ể ạ
HotKeySet("{ch cái ho c kí tữ ặ ự}","tên_hàm_c n_g iầ ọ ")
ko th g i đc phím Ctrl Alt Del !ể ử
B NG KEYS DÙNG CHO L NH HotKeySet(“{}”)Ả Ệ


key (flag=0) key đc n trên bàn phímấ
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{SPACE} SPACE (phím dài nh t bàn phím ý)ấ
{ENTER} ENTER ( bàn phím chính)ở
{ALT} ALT
{BACKSPACE} or {BS} BACKSPACE (nút <- trên nút enter ý)
{DELETE} or {DEL} DELETE
{UP} Up arrow (phím mũi tên lên)
{DOWN} Down arrow (phím mũi tên xu ng)ố
{LEFT} Left arrow (phím mũi tên trái)
{RIGHT} Right arrow (phím mũi tên ph i)ả
{HOME} HOME
{END} END
{ESCAPE} or {ESC} ESCAPE (phím Esc phía trên cùng bên trái)
{INSERT} or {INS} INS
{PGUP} PageUp
{PGDN} PageDown
{F1} - {F12} các phím ch c năng F1 -> F12ứ
{TAB} TAB
{PRINTSCREEN} Print Screen key
{LWIN} phím Windows (hình lá c ý) bên tráiờ
{RWIN} phím Windows (hình lá c ý) bên ph iờ ả
{NUMLOCK on} NUMLOCK (on/off/toggle)
{CAPSLOCK off} CAPSLOCK (on/off/toggle)

{SCROLLLOCK toggle} SCROLLLOCK (on/off/toggle)
{BREAK} for Ctrl+Break processing
{PAUSE} PAUSE
{NUMPAD0} - {NUMPAD9} Numpad số
{NUMPADMULT} Numpad *
{NUMPADADD} Numpad +
{NUMPADSUB} Numpad -
{NUMPADDIV} Numpad /
{NUMPADDOT} Numpad .
{NUMPADENTER} Enter bàn phím phở ụ
{APPSKEY} Windows App key
{LALT} Left ALT key
{RALT} Right ALT key
{LCTRL} Left CTRL key
{RCTRL} Right CTRL key
{LSHIFT} Left Shift key
{RSHIFT} Right Shift key
{SLEEP} Computer SLEEP key
{ALTDOWN} Holds the ALT key down until {ALTUP} is sent
{SHIFTDOWN} Holds the SHIFT key down until {SHIFTUP} is sent
{CTRLDOWN} Holds the CTRL key down until {CTRLUP} is sent
{LWINDOWN} Holds the left Windows key down until {LWINUP} is sent
{RWINDOWN} Holds the right Windows key down until {RWINUP} is sent
{ASC nnnn} Send the ALT+nnnn key combination
{BROWSER_BACK} 2000/XP Only: Select the browser "back" button
{BROWSER_FORWARD} 2000/XP Only: Select the browser "forward" button
{BROWSER_REFRESH} 2000/XP Only: Select the browser "refresh" button
{BROWSER_STOP} 2000/XP Only: Select the browser "stop" button
{BROWSER_SEARCH} 2000/XP Only: Select the browser "search" button
{BROWSER_FAVORITES} 2000/XP Only: Select the browser "favorites" button

{BROWSER_HOME} 2000/XP Only: Launch the browser and go to the home page
{VOLUME_MUTE} 2000/XP Only: Mute the volume
{VOLUME_DOWN} 2000/XP Only: Reduce the volume
{VOLUME_UP} 2000/XP Only: Increase the volume
{MEDIA_NEXT} 2000/XP Only: Select next track in media player
{MEDIA_PREV} 2000/XP Only: Select previous track in media player
{MEDIA_STOP} 2000/XP Only: Stop media player
{MEDIA_PLAY_PAUSE} 2000/XP Only: Play/pause media player
{LAUNCH_MAIL} 2000/XP Only: Launch the email application
{LAUNCH_MEDIA} 2000/XP Only: Launch media player
{LAUNCH_APP1} 2000/XP Only: Launch user app1
{LAUNCH_APP2} 2000/XP Only: Launch user app2

đ n kí t † (gi Alt n 01414 và th Alt ra) ta dùng send( "ASC 01414")ể ấ ự ữ ấ ả
vd Send("{a 4}"); thì n phím a 4 l nấ ầ
Send("+{TAB 4}") ;thì n Alt Tab 4 l nấ ầ
Send("!{F}") ; n Alt + Fấ
Send("^{v}") l; n Ctrl + VẤ
Send("{a down}") ; n phím a xu ng (gi nó d i)ấ ố ữ ở ướ
Send("{a up}") ; th phím a lên (sau khi đc n xu ng)ả ấ ố
C 1 b ng keys cho b n l a ch n !ả ả ạ ự ọ
- Hàm đ h n th i gian cho ch ng trình t đ ng thoát (tính b ng miligiây) :ể ẹ ờ ươ ự ộ ằ
Sleep(th i_gian_tính_b ng_miligiayờ ằ )
Công th c đ i : 1000 = 1 giâyứ ổ
- Hàm đ thoát ngay l p t c ch ng trình, hàm sleep s b b qua :ể ậ ứ ươ ẽ ị ỏ
Exit
( Tui g i là “hàm” vì đó cũng là 1 ch ng trình con có s n trong autoit <vidu : Exit > , n u “ko ti n” thì g i là “l nh” choọ ươ ẵ ế ệ ọ ệ
nó ti n ệ )
Th thui nh ế ể , k t thúc hàm t i đây thui ế ạ
☻ K t thúc bài h c ^^ế ọ

- Khai báo hàm : Func tên_hàm($bi n_trog_hàm)ế
N u không thì ế Func tên_hàm()
- g i hàmọ
ví d :ụ
then
tb() ; g i hàm ch th này thui ??? Ch a đâu, đ n GUI m i khó :Dọ ỉ ế ư ư ế ớ
else …
end if
- k t thúc hàm : ế EndFunc
• L u ý :ư
- Khai báo bi n tr c tiên : dim $aế ướ
- Hàm vi t sau cùng :ế

$a = Inputbox(…)

tb()

Func tb()
<l nh trong hàm>ệ

EndFunc
; H t code !ế
Cái này s h c nâng cao bài : T o 1 ch ng trình hoàn ch nh ẽ ọ ở ạ ươ ỉ
11:04 PM 21.2.10
Trong AutoIt có r t nhi u l nh (hàm – 2200 hàm ), chúng không khó nh ng khó nh ấ ề ệ ư ớ
Thui thì s tìm hi u qua ví d v y ^^.ẽ ể ụ ậ
Ch ng II : L p trình giao di n cho AutoIt – GUI - Formươ ậ ệ
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, ề ạ ấ ừ ế ớ ể ượ ử ổ ấ
1. Gui trong AutoIt

C u trúc chung :ấ
== =======================================
; GUI
; C u trúc trong GUIấ
#include <GUIConstantsEx.au3> ; cái này không th thi u n u mu n t o GUIể ế ế ố ạ
; T o 1 c a s (form cũng th , g i form cho ti n !)ạ ử ổ ế ọ ệ
GUICreate ( "title", width , height, left, top, style , exStyle, parent)
GUICtrlCreateLabel("text",left,top, style , exStyle, parent) ;T o Labelạ
GUICtrlCreateButton("OK",width , height, left, top,style,exStyle, parent) ;
T o nút – buttonạ
;… nhi u công c khácề ụ
GUISetStage(@SW_SHOW) ; hi n formệ
; code đ cho user t t form b ng “X”ể ắ ằ
; == Begin==
while 1
if GuiGetMsg() = $GUI_EVENT_CLOSE then
exit
endif
wend
;== End ==
== ==========================================
• Chú thích :
Title : Tiêu đ cho GUI , ví d : viduề ụ
Width : Chi u r ng (dùng chung – tr ng h p này là form)ề ộ ườ ợ
Height : Chi u caoề
Left : T a đ trái (x)ọ ộ
Top : T a đ trên (y) (t a đ tính b ng pixcel )ọ ộ ọ ộ ằ
style : ki u c a s (xem thêm trong file help c a AutoIt)ể ử ổ ủ
exStyle : ki u c a s m r ng (expand Style) ^^ ch c th !ể ử ổ ở ộ ắ ế
tìm hi u thêmể đây, vì đây ch là l p trình c b n, ko nên ph c t p quá.ở ỉ ậ ơ ả ứ ạ

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.ủ ử ổ ượ ạ ướ ử ổ ắ ạ ẽ ủ ử ổ ừ
(handle là gì thì tui ch u ! xem thêm trong net ! ><)ị
== ===================================================
Nh ng trong AutoIt thì không c n ph i c n nhi u y u t nh th , ch c n 3 y u t đ u là đ (đ i v i form) và 4 y u tư ầ ả ầ ề ế ố ư ế ỉ ầ ế ố ầ ủ ố ớ ế ố
(đ i v i các công c (label …) )ố ớ ụ
Ví d nè :ụ
; by autoboy195
;GUI
#include <GUIConstantsEx.au3>
GUICreate ( "title",200,100) ; t o c a sạ ử ổ
GUICtrlCreateLabel("Hello world! How are you?",30,10) ; t o nhãnạ
GUICtrlCreateButton("OK", 70, 50,60) ; t o nútạ
GUISetState(@SW_SHOW) ; hi n formệ
;Sleep(2000) ; sau 2 giây t t t form, không ti n b ng c u trúc d i !ự ắ ệ ằ ấ ướ
; C u trúc cho phép t t form - form ko t m t đi !ấ ắ ự ấ
while 1
if GuiGetMsg() = $GUI_EVENT_CLOSE then
exit
endif
wend
; K t thúcế
Và đây là form hoàn ch nh !ỉ
B t đ u th y ph c t p rùi đây ắ ầ ấ ứ ạ ! Ch l ph i “căn ke” ph c t p th sao ?? Đ ng lo, AutoIt đã nghĩ t i tr ng h p này,ả ẽ ả ứ ạ ế ừ ớ ườ ợ
đó là cho phép t o giao di n b ng công c Koda : ạ ệ ằ ụ />Nhìn là h u ngay mà ỉ 
M SciTe Script Editor ra (xem bài 1)ở
M ti p Koda : C:\Program Files\AutoIt3\SciTE\Koda\FD.exeở ế
Giao di n ch ng trình :ệ ươ
Có l không c n nói gì rùi ph i không ? Nhìn gi ng vb6 ^^. Mu n l y công c nào thì kéo-th vào form.ẽ ầ ả ố ố ấ ụ ả
Ch a h t ! Khi đã có form ng ý rùi, n F9ư ế ư ấ
Th là b n có code GUI trong tay trong tich t c, r t nhanh ph i không ? ế ạ ắ ấ ả

Sau đó n Copy to Clipboard đ sao chép vào b nh , sau đó dán vào c a s SciTe Script Editor ấ ể ộ ớ ử ổ
Công cụ
Form

Trong code này có c code đ cho phép user t t form b ng nút “X” và vô hi u hóa (Disable) nút maximize, quá ti n !ả ể ắ ằ ệ ệ
[code : 8 đ n 15]ế
- Tìm hi u code trên 1 tí :ể
GUISetStage(@SW_SHOW) : hi n form (m c đ nh là không hi n)ệ ặ ị ệ
@SW_SHOW : Macro hi n form(không ph i virus đâu nhá ! – nh n bi t b ng kí t @)ệ ả ậ ế ằ ự
$GUI_EVENT_CLOSE : s ki n khi ng i dùng n nút “X”ự ệ ườ ấ
(Tui ko h u ch ỉ ỗ while 1 , hjz, 1 là gì nh ??)ỉ
Th là xong ph n GUI ế ầ - th thui, ch y u là dùng Koda, vì code thì tui kém le’m ế ủ ế ^^
B ng ki u m r ngả ể ở ộ
ki uể mô tả
$WS_EX_ACCEPTFILES
Allow an edit or input control within the created GUI window to receive filenames via
drag and drop. The control must have also the $GUI_DROPACCEPTED state set by
GUICtrlSetState. for other controls the drag&drop info can be retrieved with
@GUI_DRAGID, @GUI_DRAGFILE, @GUIDROPID.
$WS_EX_APPWINDOW Forces a top-level window onto the taskbar when the window is visible.
$WS_EX_CLIENTEDGE Specifies that a window has a border with a sunken edge.
$WS_EX_CONTEXTHELP
Includes a question mark in the title bar of the window. Cannot be used with the
WS_MAXIMIZEBOX or WS_MINIMIZEBOX.
$WS_EX_DLGMODALFRAME
Creates a window that has a double border; the window can, optionally, be created
with a title bar by specifying the WS_CAPTION style in the style parameter.
$WS_EX_MDICHILD Create a child window included in its parent window (simulation not real MDI).
$WS_EX_OVERLAPPEDWINDOW Combines the WS_EX_CLIENTEDGE and WS_EX_WINDOWEDGE styles.
$WS_EX_STATICEDGE

Creates a window with a three-dimensional border style intended to be used for items
that do not accept user input.
$WS_EX_TOPMOST
Specifies that a window created with this style should be placed above all non-topmost
windows and should stay above them, even when the window is deactivated.
$WS_EX_TRANSPARENT
The window appears transparent because the bits of underlying sibling windows have
already been painted.
$WS_EX_TOOLWINDOW t o ra m t c a s công c , thanh tiêu đ nh h n, ko hi n ico trên thanh tiêu đ , koạ ộ ử ổ ụ ề ỏ ơ ệ ề
hi n tênệ trên taskbar, ko di chuy n t i c a s này đc = Alt+Tab, nh ng menu hể ớ ử ổ ư ệ
th ng v n hi n ra khi n Alt+Space ố ẫ ệ ấ
$WS_EX_WINDOWEDGE Ch rõ r ng m t c a s có m t biên gi i v i m t c nh đ c nêu ra. ỉ ằ ộ ử ổ ộ ớ ớ ộ ạ ượ
$WS_EX_LAYERED t o ra GUI n, chú ý ki u này ko dùng cho GUI conạ ẩ ể
đ s d ng các bi n trên b n c nể ử ụ ế ạ ầ #include <WindowsConstants.au3>
2. Truy n d li uề ữ ệ (g m các ví d m u – h c qua ví d ^^)ồ ụ ẫ ọ ụ
Đ i t ng = d li u mu n gánố ượ ữ ệ ố
D u b ng là “Gán”ấ ằ
VD :
Dim $a,$b
$a = Inputbox(“”,“Nhap text”)
ClipPut($a) ; G i text trong $a đ n clipboardử ế
Msgbox(0,“?”,“ n OK đ xem text trong clipboard”)Ấ ể
$b = ClipGet() ; L y text trong notepadấ
Msgbox(0, “text in clipbrd”,$b)
Trong ch ng trình trên, bi n a và b có cùng d li u ! (vì cùng t clipboard mà ra)ươ ế ữ ệ ừ
VD : Ch ng trình Auto tools :ươ
;================================================
; Ví d v m t s l nh trong Autoit - autoboy195 | autoit v3ụ ề ộ ố ệ
;=================================================
; =================== Các l nh ệ

Dim $t1,$t2,$3,$t4,$t5,$t6,$t7,$t8
$t1 = "copy dir : Copy th m c" & @CRLFư ụ
$t2 = "make dir : T o th m c" & @CRLFạ ư ụ
$t3 = "del dir : Xóa th m c" & @CRLFư ụ
$t4 = "del file : Xóa file" & @CRLF
$t5 = "copy file : Copy file" & @CRLF
$t6 = "clip s : G i text đ n clipboard - b nh đ m" & @CRLFử ế ộ ớ ệ
$t7 = "clip v : Xem n i dung text trong clipboard" & @CRLFộ
$t8 = " n ESC đ thoát, n F2 đ hi n th c a s l nh, n F8 đ xem l i các l nh trên, n F7Ấ ể ấ ể ể ị ử ổ ệ ấ ể ạ ệ ấ
đ t t H ng d n"ể ắ ướ ẫ
;
; Khai báo
Global $lenh,$a,$path_copy,$path_paste,$dir_nw,$dir_re,$file_del,$file_copy,$file_paste,
$clip,$time
; Ch y tr cạ ướ
$time = InputBox("Time","Nh p th i gian đ ch ng trình t đ ng thoát -tính b ng giây")ậ ờ ể ươ ự ộ ằ
$time = $time * 1000
;ToolTip("B n hãy nh p các ch t ng ng v i l nh sau:" & @CRLF & $t1 & $t2 & $t3 & $t4 & $t5ạ ậ ữ ươ ứ ớ ệ
& $t6 & $t7 & $t8,0,0,"H ng d n s d ng - t t t sau 10s")ướ ẫ ử ụ ự ắ
; ========================= Ch ng trình chính =====================ươ
; HOT KEY
; Thoat
HotKeySet("{ESC}","_exit")
; Ch y l i c a s commandạ ạ ử ổ
HotKeySet("{F2}","lenh_chay")
;Tro giup
HotKeySet("{F8}","help")
;T t ToolTipắ
HotKeySet("{F7}","hd")
; Het hot key

lenh_chay($lenh) ; ch y hàm lenh_chayạ
; Func command
Func lenh_chay($lenh)
$lenh = InputBox("Command","Nh p l nh c n th c thi c a ch ng trình - n F8 đ xem thêm")ậ ệ ầ ự ủ ươ ấ ể
Select
Case $lenh = "copy dir"
c1($path_copy,$path_paste)
Case $lenh = "make dir"
c2($dir_nw)
Case $lenh = "del dir"
c3($dir_re)
Case $lenh = "del file"
c4($file_del)
Case $lenh = "copy file"
c5($file_copy,$file_paste)
Case $lenh = "clip s"
c6($clip)
Case $lenh = "clip v"
c7($a)
Case Else
EndSelect
EndFunc
;
;Copy th m cư ụ
Func c1($path_copy,$path_paste)
$path_copy = InputBox("Copy - step 1","Nh p path th m c c n copy (M c đ nh copy đè)")ậ ư ụ ầ ặ ị
$path_paste = InputBox("Copy - step 2","Nh p n i copy đ n (M c đ nh copy đè)")ậ ơ ế ặ ị
DirCopy ($path_copy,$path_paste,1) ; L nh copy th m c [1 : copy đè , 0 : không copy đè]ệ ư ụ
MsgBox(0,"Progress","Xong !",1)
EndFunc

;T o th m c m iạ ư ụ ớ
Func c2($dir_nw)
$dir_nw = InputBox("Tao thu muc","Nh p path c n t o th m c, ví d : C:\abc") ; T o dir m iậ ầ ạ ư ụ ụ ạ ớ
DirCreate($dir_nw)
MsgBox(0,"Progress","Xong !",1)
EndFunc
;Xóa th m cư ụ
Func c3($dir_re)
$dir_re = InputBox("Xoa thu muc","Nh p path th m c mu n xóa")ậ ư ụ ố
DirRemove ($dir_re,1) ; 1 : Xóa t t cấ ả
MsgBox(0,"Progress","Xong !",1)
EndFunc
; Xóa file
Func c4($file_del)
$file_del = InputBox("Xoa file","Nh p path mu n xóa")ậ ố
FileDelete($file_del)
MsgBox(0,"Progress","Xong !",1)
EndFunc
;Copy file
Func c5($file_copy,$file_paste)
$file_copy = InputBox("Copy file","Nh p path mu n copy, có th h tr t t c file cùng đ nhậ ố ể ỗ ợ ấ ả ị
d ng, ví d : c:\path\*.exe")ạ ụ
$file_paste = InputBox("Final path","Nh p đ ng d n <có th là th m c ho c file> c n chuy nậ ườ ẫ ể ư ụ ặ ầ ể
đ n")ế
FileCopy ($file_copy,$file_paste,1)
MsgBox(0,"Progress","Xong !",1)
EndFunc
;
; 0 : không ghi đè
; 1 : ghi đè n u trùng tênế

; 8 : t o ra th m c đích n u ko t n t i.ạ ư ụ ế ồ ạ
;
; G i text đ n clipboardử ế
Func c6($clip)
$clip = InputBox("Nhap","Nh p text mu n g i đ n clipboard")ậ ố ử ế
ClipPut($clip)
MsgBox (0,"","OK - please test in cipboard !")
EndFunc
; Xem text trong clipbpard
Func c7($a)
$a = ClipGet()
MsgBox (0,"Text in clipboard",$a)
EndFunc
; Thoat
Func _exit()
MsgBox (0,"","Thank for use !")
Exit
EndFunc
; Sleep
Sleep($time)
; help
Func help()
ToolTip("B n hãy nh p các ch t ng ng v i l nh sau:" & @CRLF & $t1 & $t2 & $t3 & $t4 & $t5ạ ậ ữ ươ ứ ớ ệ
& $t6 & $t7 & $t8,0,0,"H ng d n s d ng - n F7 đ t t")ướ ẫ ử ụ ấ ể ắ
EndFunc
;t t ToolTipắ
Func hd()
ToolTip("")
EndFunc
B n th y ch a, m c dù trong này có r t nhi u hàm ch a h c nh ng qua ví d trên, chúng ta đã bi t s d ng chúng nhạ ấ ư ặ ấ ề ư ọ ư ụ ế ử ụ ư

th nào rùi !ế
Hãy t test !ự
Code c a Auto Ben 10 ^^ủ
Đây là auto game đ u tay c a tôi ! Auto ch y r t t t ! Có 1 s hàm r t hay ^^ầ ủ ạ ấ ố ố ấ
#cs
Auto Game ben10 - autoboy195
#ce
; ======================== Code ====================
; Khaibao
Global $r,$r_final,$kt ; time_run, time_run_finally, run_left
Dim $a,$b,$c,$d,$e
$a = "Các nút c n thi t - l p trình b ng AutoIt - thi t k : Autoboy195" & @CRLFầ ế ậ ằ ế ế
$b = "t : Ch y v bên trái" & @CRLF & "p : ch y v bên ph i" & @CRLFạ ề ạ ề ả
$c = "2 : T m d ng" & @CRLFạ ừ
$d = "3 : Kích ho t kĩ thu t t n công đ c bi t (ben l a : B n qu c u l a ; Ben lu : bi n thành đ n xoáy ; Ben câyạ ậ ấ ặ ệ ử ắ ả ầ ử ế ạ
: B n h t n ; ben l i : Dò mìn trong đ t)" & @CRLF & "Khi đang auto t n công, n phím space đ tr v tr ngắ ạ ổ ườ ấ ấ ấ ể ở ề ạ
thái ban đ u" & @CRLF & "N u đã thoát ch ng trình mà v n ch a d ng auto, hãy n 4 !" & @CRLFầ ế ươ ẫ ư ừ ấ
$e = "4 : Thoát Auto" & @CRLF
; Ch y tr cạ ướ
$r = InputBox("Set Time","Nh p th i gian b n mu n auto - khác 0 (tính b ng giây)")ậ ờ ạ ố ằ
$r_final = $r * 1000
MsgBox (0,"Auto Ben10 - autoboy195",$a & $b & $c & $d & $e)
; HOT KEYS
HotKeySet("{p}","chay_p") ; chay ben phai
HotKeySet("{t}","chay_t") ; chay ben trai
HotKeySet("{2}","tamdung") ; tam dung
HotKeySet("{3}","hunt") ; b n (kích ho t )ắ ạ
HotKeySet("{4}","_exit") ; exit
; Function
;========================== Chay ve ben phai ======================

; 1 : Ch y ạ
Func chay_p()
Send("{RIGHT down}") ; n gi phím mũi tên ph i t ng đ ng v i l nh ch yẤ ữ ả ươ ươ ớ ệ ạ
Sleep($r_final) ; Ch y trong kho ng th i gian đã đ nhạ ả ờ ị
MsgBox (0,"Time","H t th i gian ! n OK đ thoát !") ; Hi n thông báo n u h t th i gianế ờ Ấ ể ệ ế ế ờ
Send("{RIGHT}") ; n phím Right key 1 l n n a đ d ng Ben (trong game là th )Ấ ầ ữ ể ừ ế
Exit ; Sau đó thoát
EndFunc
;======================================================================
;========================== Chay ve ben trai ======================
; 1 : Ch y ạ
Func chay_t()
Send("{LEFT down}") ; n gi phím mũi tên trái t ng đ ng v i l nh ch yẤ ữ ươ ươ ớ ệ ạ
Sleep($r_final) ; Ch y trong kho ng th i gian đã đ nhạ ả ờ ị
MsgBox (0,"Time","H t th i gian ! n OK đ thoát !") ; Hi n thông báo n u h t th i gianế ờ Ấ ể ệ ế ế ờ
Send("{LEFT}") ; n phím Left key 1 l n n a đ d ng Ben (trong game là th )Ấ ầ ữ ể ừ ế
Exit ; Sau đó thoát
EndFunc
;======================================================================
; 2 : Tam dung
Func tamdung($kt)
Send("{RIGHT}") ; n gi phím mũi tên ph i t ng đ ng v i l nh ch yẤ ữ ả ươ ươ ớ ệ ạ
Send("{SPACE}") ; n phím Right key 1 l n n a đ d ng Ben (trong game là th )Ấ ầ ữ ể ừ ế
Send("{LEFT}") ; n gi phím mũi tên trái t ng đ ng v i l nh ch yẤ ữ ươ ươ ớ ệ ạ
MsgBox (0,"Pause","Đã t m d ng ! n OK đ ti p t c ! ^^")ạ ừ Ấ ể ế ụ
MsgBox(0,"Tiep tuc","Ch y v bên trái gõ ch t , ch y v bên ph i gõ ch p")ạ ề ữ ạ ề ả ữ
;
; 3 : Kích ho t kĩ năng t n công khác ạ ấ
Func hunt()
Send("{SPACE down}") ; n gi phím SPACE t ng đ ng v i l nh b n (sau khi đã bi n hình)Ấ ữ ươ ươ ớ ệ ắ ế

Sleep($r_final) ; Ch y trong kho ng th i gian đã đ nhạ ả ờ ị
MsgBox (0,"Time","H t th i gian ! n OK đ thoát !") ; Hi n thông báo n u h t th i gianế ờ Ấ ể ệ ế ế ờ
Send("{RIGHT}") ; n phím Right key 1 l n n a đ d ng Ben (trong game là th )Ấ ầ ữ ể ừ ế
Exit ; Sau đó thoát
EndFunc
; 4 : Thoat
Func _exit()
MsgBox (0,"Close","Thanks to use !")
Send("{RIGHT}") ; n phím Right key 1 l n n a đ d ng Ben (trong game là th )Ấ ầ ữ ể ừ ế
Send("{LEFT}") ; n gi phím mũi tên trái t ng đ ng v i l nh ch yẤ ữ ươ ươ ớ ệ ạ
Exit
EndFunc
;
; Time

×