tự học autoit 2

27 835 0
tự học autoit 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 : 1 – Thanh menu 2 – Thanh công cụ 3- Khu vực soạn thảo 4 – Thanh trạng thái - 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ờ ấ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 ^^) 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 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: -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) Đưa con trỏ chuột vào tiêu đề notepad, sau đó copy từ chỗ này ! 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 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> =================================== [...]... page {VOLUME_MUTE} 20 00/XP Only: Mute the volume {VOLUME_DOWN} 20 00/XP Only: Reduce the volume {VOLUME_UP} 20 00/XP Only: Increase the volume {MEDIA_NEXT} 20 00/XP Only: Select next track in media player {MEDIA_PREV} 20 00/XP Only: Select previous track in media player {MEDIA_STOP} 20 00/XP Only: Stop media player {MEDIA_PLAY_PAUSE} 20 00/XP Only: Play/pause media player {LAUNCH_MAIL} 20 00/XP Only: Launch... 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)... {BROWSER_BACK} 20 00/XP Only: Select the browser "back" button {BROWSER_FORWARD} 20 00/XP Only: Select the browser "forward" button {BROWSER_REFRESH} 20 00/XP Only: Select the browser "refresh" button {BROWSER_STOP} 20 00/XP Only: Select the browser "stop" button {BROWSER_SEARCH} 20 00/XP Only: Select the browser "search" button {BROWSER_FAVORITES} 20 00/XP Only: Select the browser "favorites" button {BROWSER_HOME} 20 00/XP... 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à 20 00 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... … $a = Inputbox(…) … tb() … Func tb() … 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 – 22 00 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... auto thoát rùi, ben cũng dừng lại ngay !! Code tự cài đặt Total video convert (yêu cầu file tvc312b.exe cùng thư mục với chương trình) ; Tự cài đặt Run("tvc312b.exe") WinWaitActive("Setup – Total Video Converter 3.12beta") Send("{ENTER}") WinWaitActive("Setup - Total Video Converter 3.12beta") Send("{ENTER}") WinWaitActive("Setup - Total Video Converter 3.12beta") Send("{ENTER}") WinWaitActive("Folder... player {MEDIA_PLAY_PAUSE} 20 00/XP Only: Play/pause media player {LAUNCH_MAIL} 20 00/XP Only: Launch the email application {LAUNCH_MEDIA} 20 00/XP Only: Launch media player {LAUNCH_APP1} 20 00/XP Only: Launch user app1 {LAUNCH_APP2} 20 00/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... bật Auto lên, làm theo như lệnh, nếu ấn p sẽ thấy ben tự chạy ! Muốn dừng ấn 2 Quá tuyệt ! Bạn hãy tự viết Auto bằng cách trên ! Toàn những cái đã học, lại rất đơn giản ! • • chú thích chức năng tạm dừng : ^^ Chả có gì lạ cả, bạn cứ thử bật game lên, cho auto chạy (ấn p), sau đó ấn phím sang phải, sẽ thấy ben dừng lại !, lợi dụng cách trên khi ấn 2 (tạm dừng), chương trình sẽ gửi các nút đến cho game,... autoboy195 ;GUI #include GUICreate ( "title" ,20 0,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 (20 00) ; 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... Converter 3.12beta") Send("{ENTER}") WinWaitActive("Setup - Total Video Converter 3.12beta") Send("{ENTER}") WinWaitActive("Setup - Total Video Converter 3.12beta") Send("{ENTER}{SPACE}{ENTER}") ;Ấn Enter >> phím cách >> enter msgbox (0,"","Chương trình tự cài đặt - Xong") Gửi từng nút đến cho setup ! Chạy xong cài rất nhanh ! Yêu cầu : WinWaitActive("Setup - Total Video Converter 3.12beta") Tiêu đề . $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. Y!m : unluckystar_195 borned : 20 -2- 1995 ^^! -Time : 10 :25 PM 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. 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& gt; elseif <dk3>

Ngày đăng: 04/07/2014, 12:13

Mục lục

  • Loại dữ liệu trong Arrays

Tài liệu cùng người dùng

Tài liệu liên quan