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)
Và
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