Ữ Ậ

ấ ề ộ ố ệ I ! ƯỜ ư

ủ ế

s u t m và t biên t i!> ẽ ố ự ư ầ ễ ể di n ^^ - có ch nào ko h u xin th l ự ễ ứ ỗ ỗ ỉ

ớ t form ắ

NGÔN NG L P TRÌNH DÀNH CHO M I NG Ọ ớ ạ -designed by Lý Th Minh – nick : autoboy195 – Y!m : unluckystar_195 borned : 20-2-1995 ^^! -Time : 10:25PM 18.2.10 Tui s c trình bày 1 cách d hi u nh t !

Chương I : Lập trình cơ bản

1. M ch ng trình AutoIT đ l p trình

Bài 1 : làm quen ! ở ươ

ể ậ

Tên ch ng trình : SciTe Script Editor ươ

Giao di n nh sau : ư ệ

1 – Thanh menu 2 – Thanh công cụ ạ 3- Khu v c so n ự th oả 4 – Thanh tr ng thái ạ

ng trình đ n gi n 2. M t ch ộ ươ ả

t có d u trong AutoIT, b n hãy làm nh sau : ơ ấ ể ể ị ế ệ ạ

Đ hi n th Ti ng Vi ư 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 là auto) nào đ u ph i l u l ấ ứ ươ t t ế ắ ả ư ạ ề ạ i (đ nh d ng ị

*.au3), sau đó m i ch y đ c. Thao tác l u : ớ ư

ạ ượ ọ

ng trình, n F5 ( gi ng vb6 nh ^^) n vào icon Save >> Ch n n i l u >> Save ố ơ ư ấ ử ươ ể ạ ỉ

ấ - Đ ch y th ch --------------------------------------------------------------------------------------

ị ế

i, bây gi t 100% ^^") ng trình nh c a b n đã hình thành ! • Gõ vào dòng sau trong khu v c 3 : Msgbox (0,"Thông báo","Hi n th ti ng vi Save nó l ờ ấ ể n F5 đ ch y, 1 ch ể ạ ạ ệ ươ ỏ ủ ạ

ng trình hi n th Unicode r t chu n, không b l i nh vb6 ^^. ươ ị ỗ ể ấ ẩ ị ư

Tuy t v i, ch ệ ờ • 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 đã có 1 file *.exe hoàn ch nh rùi ! Ti n l i h n là ch có 1 file duy nh t ! ư ụ i gì thì l p t c b n ậ ứ ạ ỗ ấ ọ ệ ợ ơ ỉ ỉ

Đây là file vidu.au3 Đây là file vidu.exe

☻ K t thúc : ế

- L nh m thông báo đ n gi n: ệ ả ở ơ

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 t : ạ ẽ ấ ệ ả ầ ượ

n F5, b n s th y các công vi c x y ra l n l ờ ấ ở ở ể

- 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 ệ ả ọ

ả ư

ỉ ớ ự ỉ

ề ấ

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,… ữ ư ớ

ỗ ẹ ậ

ấ ạ

ư ệ ả ệ

(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 : 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:

ề ặ ạ ườ ẵ ủ i” chép ^^, hãy dùng công c Windows Info có s n c a ụ

-N u tiêu đ dài ho c b n “l ế AutoIt B c 1 : ch y notepad ạ ướ

B c 2 : Ch y windows info ướ ạ

ư ỏ

Đ a con tr chu t vào ộ tiêu đề notepad, sau đó copy từ ch này ! ỗ

ng trình : ươ

ươ ươ run (“[tên ch ẫ ng d n ch ng trình]”) ng trình

☻ K t thúc : ế • Câu l nh đ ch y ch ệ * tên ch • Câu l nh đ ch ch ặ ng trình ho c đ ng trình đó : ể ạ ươ ể ờ ươ ệ ườ WinWaitActive (“[tiêu đ ]”)ề

ng trình đó : ế ử ố send (“[text mu n g i]”)

 cho flag là 1 ng trình đó : • Câu l nh đ g i text đ n ch ệ ươ ể ử n u mu n g i kí t “#”, gõ l nh sau : ố ử ệ ế Send (“# d u thăng”,1) --- ấ • Câu l nh đ đóng ch ươ ể ệ 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 c c ng c qua th c hành, h c t t , s vào ^^] th c s đ

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 đ (ph m vi s d ng : global > local > dim)

khóa Dim, local và global: ế ượ c khai báo và t o ra v i các t ạ ớ ừ

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

khai ể ỉ ế ộ ị không c nầ khai báo (nh ngư Tui khuy n kích ế

$Var1 = "abc"

• Khai báo h ngằ (constants)

B n cũng có th ch đ nh m t bi n mà ạ báo tr c). ướ

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

Constants đ t khóa nh : ượ c công b và t o ra b ng cách s d ng Const ằ ử ụ ạ ố ừ ư

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 : ụ

ố ư

ữ ữ

ạ ể ử ụ

ế

: "A", "U", "T", "O", "I", "T" và "3". ự t đ làm nh th , nh ng b ng cách s d ng m t Array là ệ ể

ư ế

ử ụ

ư

Hãy nói b n mu n l u tr nh ng lo t ký t B n có th s d ng b y các bi n riêng bi 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 đ ế ể ượ ph c t p cách đ ch đ nh ho c truy c p vào m t y u t ặ

c thay th b i m t bi n ho c m t bi u, do đó, b n có th xây d ng ự ộ 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 )

c Array. T ng s các m c có th không đ

c l n h n 2

ướ

ượ ớ

ơ

B n có th s d ng đ n 64 trong m t kích th ế ể ử ụ ^ 24 (16 777 216).

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

ủ ạ

ậ ệ

ủ ọ

ể ắ ầ ử ụ khóa.

Tr ướ b ng cách s d ng ằ

ạ ử ụ ' Dim ' t

Lo i d li u trong Arrays

ạ ữ ệ

ượ

ộ ng có th ch a b t c th gì t

ộ m t ộ d li u c a cùng m t lo i. Tuy nhiên, k thu t nói, m t ạ ậ m t s vào m t giá tr boolean. Vì v y,

ừ ộ ố

ữ ị

Nó đã đ c cho r ng ch ch a m t Array ỉ ứ trong AutoIt Ngôn ng đ a ph 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

c ch t ch trong AutoIt. Tuy nhiên, nó là

KHÔNG Khuy n khích

ị ấ

ượ

để t là vi c s d ng m t Bên trong m t m ng Array

ế ộ

Đi u này đã b c m không đ ề k t h p khác nhau trong m t datatypes Array. Đ c bi ộ ế ợ 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 ế

ế ế

ị ủ ằ Dim $tên_bi n_1,$tên_bi n_2 ế Const $tên_bi n_1 = [giá tr c a h ng]

ằ Ví d : Const $bien1 = 1, $bien2 = 2 ả

ứ ự ả ị ả ố - Khai báo bi n : ế - Khai báo h ng : ụ - Khai báo m ng Array : ộ ề ả $tên_m ng[s th t m ng]= [giá tr m ng]

ứ ạ ấ

+ m t chi u : 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 ỏ ơ Logic và: đúng n u 2 dk đúng, sai n u 1 trong 2 sai Logic ho c : đúng n u 1 trong 2 đúng, sai n u c hai sai Logic Không : vd : Không 1 (sai)

ộ ư ấ ấ

<> > < >= <= And Or Not Đ 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 :ụ

ố ạ ậ ậ ; a = s b n gõ ố ạ

ế

; Hi n thông báo nh p đúng ậ ố ệ ạ ậ

dim $a ; Khai báo bi n aế $a = inputbox ("Nh p m t s ","Nh p 1 s b n nghĩ:") ộ ố if $a = "10" Then ; N u a = 10 thì msgbox (0,"S b n gõ","B n đã nh p s 10") ố ạ i else ; Ng c l ượ ạ

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 ! ấ ể ạ ạ ự

ư ữ ấ ấ

t đi vi • 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 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. ề ả ơ ấ ề ầ t l ế ạ ế ế ấ ắ ọ

ố ậ ố ạ ế ậ ; Gán var = s b n ch n ọ

ế

ơ ụ ậ ớ

ế 11 đ n 20 ế

ụ 1 đ n 10 ế ừ ố ạ ừ ố ạ ậ ớ ơ

ậ ớ ố ạ ụ ơ

ậ ớ ụ ơ

ế ả

ố ạ ằ ố ạ ậ ớ ỏ ơ ụ ặ ơ

ẽ ằ ầ

ể ấ ố

Ví d :ụ dim $var ; Khai báo bi n var $var = inputbox ("Nh p","Nh p 1 s ") Switch Int($var) Case 1 To 10 ; N u var t MsgBox(0, "Ví d ", "S b n nh p l p h n 1") Case 11 To 20 ; N u var t 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 :

ạ ế ớ "AutoIt" ^^ '

ế ạ ớ "AutoIt"^^ ”

dim $a $a = ' Chào m ng các b n đ n v i ừ msgbox (0,"Thông báo",$a) Và dim $a $a = “Chào m ng các b n đ n v i ừ msgbox (0,"Thông báo",$a)

c, còn code 2 ị ứ ư ạ ượ

ế ứ ổ

' ườ ặ

ủ ụ ố ổ

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 đ ể ko ch y dc ! ạ K t lu n : ta có công th c t ng quát sau : ậ ng “ văn b n ch a d u ngo c kép” ' văn b n bình th ứ ấ ả ả 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 ấ ') ủ ừ ổ

ứ ế ấ t c u trúc kia v y (đ n gi n thôi) ậ ả ơ

Select

Case <đi u ki n 1> ề

......

Case <đi u ki n 2> ề

........

Case Else

........

EndSelect

Hjz, thui thì c vi • C u trúc Select … case ấ

đ c th t kĩ ! ậ ạ ọ ậ

ậ ử ụ ụ ấ ấ

• 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 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.

ng trình

ở ươ

ư

ế

ơ

ng ng v i các l nh sau : " &

ươ ứ

#ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here ; M ch 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 ệ @Crlf & @Crlf & $a & @crlf & $b) ; xu ng dòng … đã h c rùi :D

ớ ọ

ng trình : ")

ậ ệ

ể ở ươ

; nh p li u ệ ậ $dl = inputbox ("Enter to here","Nh p l nh đ m ch 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

i

c l ượ ạ

msgbox (0,"Thông báo tu do'ng sau 2 giay","Không có l nh này !",2)

ế

ng d n (path) c a word ch khác ! ế ườ ủ ở ỗ

EndIf ; k t thúc Code có th sai n u đ ể ○ 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 ự ắ

ng trình, m i bi n ch a 1 dòng text ỗ ế ứ ươ

i, sau đó 2s t t ! ậ ậ ả ặ ệ ỗ t ự ắ

ế ồ ấ

ệ ệ

i hay không có giá tr nào th a mãn ỏ ị

○ Phân tích code - khai báo 2 bi n (a,b) cho ch ế - 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 ế ☻ ----------- 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 then elseif then elseif then ... elseif (dk n) then else ; ng c l ượ ạ ệ ứ ệ EndIf

ệ ng d n ch ẫ ươ

ng trình ng trình") ươ ể

3. l nh run ("đ ườ 4. Timeout : th i gian đ thoát ch ờ ví d : msgbox (0,"","",2) tính b ng giây ằ ụ H t bài ^^ ế

1 đ n 5, hãy ngh gi i lao 30’ rùi h c típ

ặ ể

ạ ọ ừ ỉ ả ế ọ

Bài 6 : C u trúc l p ấ Phù !!.. Sau khi b n đã hi u h t bài h c t ế nhé

) (gi ng ố while … do trog pascal í mà ấ

• C u trúc While … Wend C u trúc chung nè : =================================== While <đi u ki n> ề ệ … Wend ; k t thúc vòng l p n u đi u ki n sai ệ ề ế ế ặ

ệ ự ệ ệ

ề ===================================

S đ cô đ ng (Nhìn là h u ngay ^^) ơ ồ ọ ỉ

While

ng trình ki m tra ể ươ Sai ệ ầ ề

ự ệ Đi u ề ki n?ệ Wend

ể ạ Đúng

Đ u tiên ch đi u ki n : • N u DK đúng thì th c hi n câu ế l nhệ • Quay l đúng n a thì th c hi n câu l nh, ự ữ n u sai thì thoát kh i vòng l p ! ế i ki m tra DK, n u ế ệ ặ ệ ỏ Câu l nhệ

; hi n thông báo giá tr c a i ị ủ

ệ ơ ế ị

ế

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) ị ủ $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”) ề ặ ừ ạ

ề ệ ớ

ầ ự ượ ệ ế ệ ơ ị

c th c hi n và bi n i dc tăng lên 1 đ n v ự ệ ấ ứ ế ệ ế

○ 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 ) - Nên l nh msgbox đ - 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  ! ể ể

ng trình t ch ụ ộ ứ ươ ấ ắ

ng trình khi nh n nút “X” đ y :D) ấ t dc ch Và : m t ng d ng r t hay c a c u trúc trên, đó là cho phép user t 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 ố ạ ắ ủ ấ ạ ứ ử ấ ồ ấ ươ

while 1 if GuiGetMsg() = $GUI_EVENT_CLOSE then exit endif

wend

t form b ng nút “X” ! ố ắ ạ ằ

Hãy copy code trên vào form khi b n mu n t Trong đó : 1 t c là enable, 0 t c là disable ứ ứ

ấ ễ

to ị ố ị ầ

t giá tr cu i> ế ượ ị ố ự

• C u trúc For … Next C u trúc này thì d rùi : == =============== For <$tên bi n> = ế ự ệ Next

Dim $i For $i = 1 to 5 Msgbox (0,“Day la thong bao thu”,$i) Next Msgbox (0,“Thong bao”, “An OK de thoat !”)

== =========================================

Do

........

Until <đi u ki n> ề

== ===============================================

• C u trúc Do … Until (gi ng trong pascal) ố ấ Cú pháp :

DO ng trình ki m tra ể ươ

ệ ầ ề

ệ ự Đúng

ạ ể ế Until Đi u ề ki n?ệ ệ

ặ ỏ Sai ượ

Câu l nhệ c ! Đ u tiên ch đi u ki n : • N u DK sai thì th c hi n câu ế l nhệ i ki m tra DK, n u sai • Quay l ế 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à đ ơ ồ ạ ứ ầ ượ

ấ ụ

Ứ ự ộ ặ

ng trình không ch y n a thì d ng ừ

ặ ẫ ạ

(*) 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 ạ ữ ươ ế ; 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 , trong bài GUI M i xem qua ph n m m AutoClick v1.0 – phiên b n đ u tay c a tui ờ 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 ^^ ả ủ

ộ ơ

ng trình : T đ ng Click chu t đ n gi n ả t k : Lý Th Minh (20.2.1995) - Thanh L ng - Yên Bái ự ộ ế ươ

#cs ---------------------------------------------------------------------------- ;~ Ch ươ ;~ Thi ế ế ;~ Autoit v3.0.0.0 #ce ----------------------------------------------------------------------------

ng trình chính ---------------- ươ

ờ ứ

ể ắ ầ Ấ c tiên, rùi n F7 đ b t đ u - n ướ Ấ ấ

đ ng thoát") ươ ằ ố

ng trình t ự ộ ị ơ ủ ờ

; ------------- Ch Global $time,$time_final ; ch a th i gian msgbox (0,"Auto Click - autoboy195","Hãy n OK tr 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 ớ $time_final = $time * 1000 ; vì đ n v tính là miligiay nên nhân th i gian c a user v i 1000 ; -----------------------------------------------------

đ ng Click ------------------------ ể ự ộ

;----------- Hàm đ t ; AutoClick Function Func auto() ; không có bi n nào trong hàm auto ế

ặ ạ

i thich gì thêm) ả ỉ

Do ; L p l MouseClick("left") ; Click (nhìn là h u, ko c n gi Until 0 ; L p l i thao tác Click -> Nháy đúp ^^ ầ i thao tác Click -> Nháy đúp ^^ ặ ạ

EndFunc ;End Func ;----------------- H t hàm ---------------------------------- ế

ng trình ---------------------------- ể ươ

;----------- Hàm đ thoát ch ;Stop Function

Func end()

ả ơ ể ạ

ch ươ

msgbox (0,"AutoClick - autoboy195"," n OK đ thoát ! c m n b n đã s d ng ử ụ Ấ ng trình ^^") Exit ; thoát nhanh ch ng trình ươ

EndFunc ; End Func ;------------------------ H t hàm------------------------- ế

bài 7

;--------------- Cài đ t phím nóng ;Set Hot Keys, cái nè xem thêm ở HotKeySet("{F7}","auto") HotKeySet("{F8}","end")

ng trình ------------------ t ch t ể ự ắ ươ ờ

; --------------- Th i gian đ t ;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 ! ứ ế ậ

ử ể ỉ

ọ ng th thành qu :D ả ưở ươ ơ ụ

ư ề ậ ư ỉ ế “l ả ườ ọ

ờ ẽ ấ ạ i” không ữ , sau này đ c p đ n thì h c, nh ng ế s chuy n qua m t ph n không kém ộ ể ầ

ầ ờ ạ

ng trình con c khi h c

ươ i lao 30 phút tr

B n có th ch nh s a cho g n h n ! ạ Ch y ch ng trình và h ạ … Hjz, ngoài ra còn 2 nhi u c u trúc (For…In và With) n a nh ng tác gi ề ấ , nh ng cái y tui còn ch a h u h t h c ọ ữ . Bây gi c u trúc c b n đã d y h t rùi ^^ ế ơ ả ấ 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 , Tui đ ngh b n nên ngh gi Hì ị ạ ỉ ả ướ ề ọ

ng trình con, khi nào c n đ n thì “g i” lên ả ơ ầ ọ

ế _ _ ! ) 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 ư ươ đ th c hi n l nh ^^ (th thui, n u mu n tìm hi u kĩ thì google ố ế ể ự ỉ ệ ệ ể ế

i giá tr cho hàm (n u có) ế ị ị

ế ầ

: 2. Khai báo hàm : == ========================== Func tên_hàm($bi n_trong_hàm) ế Return ; tr l ả ạ 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 : ử ạ

Gõ khác s 1 :ố

n OK Ấ

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 !

ặ ỏ c ượ

ng trình, gõ ch ể ạ ươ ữ

#ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here ;Global $a,$b thêm ho c b cũng đ msgbox (0,"vi du"," n OK, sau đó Gõ ch s đ ch y ch t đ thoát ch ữ ; hi n thông báo Ấ ng trình") ươ ệ ể

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 ==

ả ơ ử ụ

t nhanh ch ng trình ể ắ ươ

$b = "C m n đã s d ng !" msgbox (0,"Thong bao - code by autoboy195",$b) Exit ; l nh đ t ệ EndFunc ;== h t hàm 2 == ế

ế ế

ng trình t ươ ế ọ c g i lên ượ ọ c g i lên ượ ọ ự ắ t t

HotKeySet("{s}","h1") ; phím nóng : n u user gõ s thì hàm 1 đ HotKeySet("{t}","h2") ; phím nóng : n u user gõ t thì hàm 2 đ Sleep(8000) ; N u không g i hàm 2 thì sau 8 giây ch (1000 = 1s)

i ! Tui đã test rùi ! N u b n ko ch y dc thì hãy nh ạ ệ ắ ế ạ

cũng ko rõ m y, vì tác gi ờ ả ỉ ế ch vi t ấ ả

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 ạ ị ỗ chuyên gia v AutoIt c a b n (Vì chính tác gi ủ ạ ề theo “s hi u” c a mình thui ^^, nh ng nh Encoding là …BOM… nhá (xem bài 1) ) ớ ự ể ư ủ

ng trình (F5) • Ch y ch ạ ươ

Ấ n OK. N u b n gõ ch s (ch “s”) , thông báo sau hi n ra ữ ữ ệ ế ạ

ầ Ở ạ ấ ứ ạ

ấ thông báo đ u tiên, khi b n n OK, t c là trong 8 giây đó, dù b n không ư ế ẫ ạ

ấ Sleep(8000) )< ầ ng trình s t t ! (vì code có l nh ặ ị ẽ ắ ươ ệ

* L u ý : ư ặ ấ 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 ch y ng m chính là cách th c chung c a virus !! ^^> ủ ứ ạ ầ

N u b n gõ ch t (ch “t”) ữ ữ ế ạ

t luôn ! Vì trong hàm 2 có câu l nh Exit , có tác ệ ắ

ấ ươ t ngay l p t c ch t đúng không ^^, vì t c đ ng trình t ươ ư ậ ế ố ộ

, thui, xin ng trình (nói nh v y không bi ả

Sau khi n OK thì ch d ng t ậ ứ ắ ụ tính b ng miligiay ch ko ph i giây nên sai s ch c cũng không nh ỏ ứ ằ ch m d t cái suy lu n ng c ngh ch c a tui t i đây !) ố ắ ạ ủ ứ ế ậ ấ ố

ậ ế

ể ạ

ko th g i đc phím Ctrl Alt Del !

ể ử

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 ọ ") ầ

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 arrow (phím mũi tên lên)

{UP}

{DOWN}

Down arrow (phím mũi tên xu ng)ố

Left arrow (phím mũi tên trái)

{LEFT}

{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)

INS

{INSERT} or {INS}

PageUp

{PGUP}

PageDown

{PGDN}

các phím ch c năng F1 -> F12

{F1} - {F12}

TAB

{TAB}

{PRINTSCREEN}

Print Screen key

phím Windows (hình lá c ý) bên trái

{LWIN}

{RWIN}

phím Windows (hình lá c ý) bên ph i ả

NUMLOCK (on/off/toggle)

{NUMLOCK on}

CAPSLOCK (on/off/toggle)

{CAPSLOCK off}

{SCROLLLOCK toggle}

SCROLLLOCK (on/off/toggle)

for Ctrl+Break processing

{BREAK}

{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 ấ Ấ

ữ ấ ố

i) Send("{a down}") ; n phím a xu ng (gi d ở ướ Send("{a up}") ; th phím a lên (sau khi đc n xu ng) ố ả nó ấ

C 1 b ng keys cho b n l a ch n ! ạ ự ả ả ọ

đ ng thoát (tính b ng miligiây) : ể ẹ ự ộ ằ

ng trình t ) ằ

ng trình, hàm sleep s b b qua : ờ ứ ổ ể ươ ẽ ị ỏ

- Hàm đ h n th i gian cho ch ươ ờ 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 ậ ứ Exit

ế ng trình con có s n trong autoit , n u ẵ

) ( Tui g i là “hàm” vì đó cũng là 1 ch ươ “ko ti n” thì g i là “l nh” cho nó ti n ệ ọ ệ ệ ọ

Th thui nh i đây thui ể , k t thúc hàm t ế ế ạ

☻ K t thúc bài h c ^^ ế ọ

ế

Func tên_hàm() ế

ỉ ế ư ư ọ ??? Ch a đâu, đ n GUI m i khó :D ế ớ

- Khai báo hàm : Func tên_hàm($bi n_trog_hàm) N u không thì - g i hàmọ ví d :ụ ... then tb() ; g i hàm ch th này thui else … end if

EndFunc

c tiên : dim $a ế

ướ t sau cùng : ế

- k t thúc hàm : ế • L u ý : ư - Khai báo bi n tr - Hàm vi … $a = Inputbox(…) … tb() … Func tb()

… EndFunc

; H t code !

ng trình hoàn ch nh ế Cái này s h c nâng cao ẽ ọ ở bài : T o 1 ch ạ ươ ỉ

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 ươ ệ ậ

vi t c a Graphic User Interface – giao di n ng ườ ồ ọ i dùng b ng đ h a. ằ

ạ ừ ớ khi ti p xúc v i ế

t t GUI là t ừ ế ắ ủ Đi u này có l ẽ ề máy tính, chúng là các bi u t ệ ấ ng, c a s , nút b m, ... không c n ph i nóii nhi u vì b n đã th y nó ngay t ề ử ổ ầ ả ể ượ ấ

ố ạ ế ế

1. Gui trong AutoIt C u trúc chung : == ======================================= ; GUI ; C u trúc trong GUI ấ #include ; 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 !) ử ổ ế ọ ệ ạ

t form b ng “X” ằ

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 ắ ể ; == Begin== while 1 if GuiGetMsg() = $GUI_EVENT_CLOSE then exit endif wend ;== End == == ==========================================

• Chú thích :

ng h p này là form) ườ ợ

đây, vì đây ch là l p trình c b n, ko nên ph c t p quá. Title : Tiêu đ cho GUI , ví d : vidu ề Width : Chi u r ng (dùng chung – tr ề ộ 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 ỉ ể ơ ả ậ ở ứ ạ

c t o ra tr ượ ạ ướ ủ c đó. C a s s p t o ra s là con c a ử ổ ắ ạ ẽ

ủ ử ổ ừ

nh th , ch c n 3 y u t ả ầ ế ố ầ đ u

parent : handle c a c a s đã đ 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 ỉ ầ 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 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 i ! t form, không ti n b ng c u trúc d ệ t ự ắ ấ ằ ướ

m t đi ! t form - form ko t ắ ự ấ

; C u trúc cho phép t ấ while 1 if GuiGetMsg() = $GUI_EVENT_CLOSE then exit endif wend ; K t thúc ế Và đây là form hoàn ch nh ! ỉ

! Ch l ả ẽ ừ ế ả ấ ắ ầ

ng h p này, đó là cho phép t o giao di n b ng công c Koda : ph i “căn ke” ph c t p th sao ?? Đ ng lo, ứ ạ ệ ụ ằ ứ ạ i tr ớ ườ ạ

ở ở ế

B t đ u th y ph c t p rùi đây AutoIt đã nghĩ t ợ http://files.myopera.com/saihukaru/AutoIT/GUIDesign.zip 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ông cụ

Form

ầ ẽ ố ấ ụ ả ố

Có l kéo-th vào form. Ch a h t ! Khi đã có form ng ý rùi, n F9 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ì ả ư ế ư ấ

ế ấ ả

ạ ấ ử ổ ể ộ ớ

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

t form b ng nút “X” và vô hi u hóa ể ả ệ ằ

Trong code này có c code đ cho phép user t ắ (Disable) nút maximize, quá ti n ! [code : 8 đ n 15] ế ệ

- Tìm hi u code trên 1 tí : ể

t b ng kí 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 ậ @)

i dùng n nút “X” ấ

$GUI_EVENT_CLOSE : s ki n khi ng (Tui ko h u ch ỉ ườ ự ệ ỗ while 1 , hjz, 1 là gì nh ??) ỉ

- th thui, ch y u là dùng Koda, vì code thì tui kém le’m ế ầ ủ ế ế

Th là xong ph n GUI ^^

ể ở ộ

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.

ộ ử ổ

trên ệ ề $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 ệ 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 ẫ ệ ố ư ệ ấ

ộ ớ ớ ộ i v i m t $WS_EX_WINDOWEDGE c nêu ra. Ch rõ r ng m t c a s có m t biên gi ộ ử ổ ỉ c nh đ ạ ằ ượ

$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 ế

ề ữ ệ 2. Truy n d li u