{SPACE} SPACE phím dài nh t bàn phím ýấ{BACKSPACE} or {BS} BACKSPACE nút F12ứ {LWIN} phím Windows hình lá c ý bên tráiờ{RWIN} phím Windows hình lá c ý bên ph iờ ả {CAPSLOCK off} CAPSLOC
Trang 1NGÔ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ắ
Trang 22 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ặ
-• 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ọ ế ỗ ậ ứ ạ ỉ ệ ợ ơ ỉ
th o ả
4 – Thanh tr ng thái ạ
Trang 3Msgbox ([ki u thông báo 0~6],“[Tiêu đ ]”,“[Text]”)ể ề
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 ^^)ẹ ỗ ậ
Trang 4B 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
Trang 5B 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
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 : ề ề ạ ử ụ ề ạ ỉ ụ ố ư
Trang 6- 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]ả ố ứ ự ả ị ả
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)
Trang 7Th 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ố ạ ọ
Trang 8msgbox (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ấ
SelectCase <đ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>ệ
Trang 9$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ế ậ ạ
Trang 103 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à )
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>ệ ự ệ ề ệ
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”)ặ ừ ạ
n u sai thì thoát kh i vòng l p ! ế ỏ ặ While
Wend
Trang 11- 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)ấ ấ
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ứ ứ
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>ề ệ
== ===============================================
Trang 12(*) 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ờ ủ ạ ằ ố
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 ^^ặ ạ
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
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
Trang 13Hjz, 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 ọ
Trang 14-; 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ữ ể ươ ngtrì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ọ
Trang 15Sleep(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 !! ^^>ạ ầ ứ ủ
B NG KEYS DÙNG CHO L NH HotKeySet(“{}”) Ả Ệ
key (flag=0) key đc n trên bàn phím ấ
Trang 16{SPACE} SPACE (phím dài nh t bàn phím ý)ấ
{BACKSPACE} or {BS} BACKSPACE (nút <- trên nút enter ý)
{RIGHT} Right arrow (phím mũi tên ph i)ả
{ESCAPE} or {ESC} ESCAPE (phím Esc phía trên cùng bên trái)
{F1} - {F12} các phím ch c năng F1 -> F12ứ
{LWIN} phím Windows (hình lá c ý) bên tráiờ{RWIN} phím Windows (hình lá c ý) bên ph iờ ả
{CAPSLOCK off} CAPSLOCK (on/off/toggle)
{SCROLLLOCK toggle} SCROLLLOCK (on/off/toggle)
Trang 17{RSHIFT} Right Shift 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