MsgBox(0, "Value of $i is:", $i) $i = $i + 1 WEnd Code: $i = 0 Do MsgBox(0, "Value of $i is:", $i) $i = $i + 1 Until $i = 10 With EndWith dùng với các đối tượng, giúp tiết kiệm công sức khi gõ: Code: $oExcel = ObjCreate("Excel.Application") $oExcel.visible =1 $oExcel.workbooks.add With $oExcel.activesheet .cells(2,2).value = 1 .range("A1:B2").clear Endwith $oExcel.quit Tương tự, bằng cách sử dụng For In Next, ta có thể duyệt qua tất cả mảng / tập các đối tượng: Code: FOR $element IN $aArray $string = $string & $element & @CRLF NEXT Identical(UDS) 3.7. Hàm Hàm trong AutoIt được định nghĩa bằng cách dùng khối Func EndFunc: Code: Func MyDouble($value) $value = $value * 2 Return $value EndFunc Sử dụng hàm cũng rất đơn giản: Code: $val = 10 For $i = 1 To 10 $doubled = MyDouble($val) MsgBox(0, "", $val & " doubled is " & $doubled) $val = $doubled Next Identical(UDS) 4. Sử dụng các hàm built-in của AutoIt Đây có thể coi là yếu tố tạo nên 80% sức mạnh của AutoIt. AutoIt bao gồm một số lượng lớn các hàm built-in, với tính năng trải rộng từ Quản lý file, thư mục đến quản lý các process, từ tương tác với registry đến giả lập các phím bấm Nói chung, các hàm này đã được liệt kê và hướng dẫn hết sức chi tiết về cách sử dụng trong file Help của AutoIt, do đó việc kể tên ra đây là vô nghĩa và ko cần thiết Hãy thử ví dụ với script sau, được dùng để tự động hóa quá trình cài đặt WinZip - giả lập bàn phím và gửi các phím cần thiết tới trình cài đặt: Code: ; Run the winzip installer Run("winzip90.exe") ; Initial Setup Screen WinWaitActive("WinZip® 9.0 SR-1 Setup", "&Setup") Send("!s") ; Install location WinWaitActive("WinZip Setup", "into the following folder") Send("{ENTER}") ; Features overview WinWaitActive("WinZip Setup", "WinZip features include") Send("!n") ; License agreement WinWaitActive("License Agreement") Send("!y") ; Quick start WinWaitActive("WinZip Setup", "Quick Start Guide") Send("!n") ; Choose interface WinWaitActive("WinZip Setup", "switch between the two interfaces") Send("!c") Send("!n") ; Installation type (custom/express) WinWaitActive("WinZip Setup", "&Express setup (recommended)") Send("!e") Send("!n") ; Select file associations WinWaitActive("WinZip Setup", "WinZip needs to associate itself with your archives") Send("!n") ; Completed installation screen WinWaitActive("WinZip Setup", "Thank you for installing this evaluation version") Send("{ENTER}") ; Wait for winzip to load then close it WinWaitActive("WinZip (Evaluation Version)") WinClose("WinZip (Evaluation Version)") Hoặc, vài ba lệnh dùng để tương tác với registry: Code: ; Write a single REG_SZ value RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Test", "TestKey", "REG_SZ", "Hello this is a test") ; Write the REG_MULTI_SZ value of "line1" and "line2" RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Test", "TestKey1", "REG_MULTI_SZ", "line1" & @LF & "line2") Một lời khuyên duy nhất: Bạn chỉ cần file Help + Forum của AutoIt để làm mọi thứ 5. Các hàm do người dùng tự định nghĩa Các hàm này, nằm trong các file au3 được phân phối kèm với AutoIt. Điểm phân biệt hàm này với các hàm built-in là ở tên của hàm - Hàm tự định nghĩa thường có dấu gạch dưới ở trước tên, hàm built-in thì ko. Để sử dụng các hàm tự định nghĩa, bạn cần include file mã nguồn của hàm vào script mình đang thực hiện. Ví dụ: Code: #include <date.au3> MsgBox(0,"Today","Today's date is " & Now()) Số lượng hàm tự định nghĩa rất nhiều và có thể được lấy về từ autoitscript.com Identical(UDS) 6. GUI 6.1. Thiết kế GUI Nếu như các script viết bằng AutoIt có thể hoạt động một cách hoàn toàn âm thầm, nghĩa là click và chạy mà người dùng ko biết j` (mở ngoặc: giống "virus" YM nhờ ), thì đôi khi bạn lại muốn tạo một GUI cho script cho giống một soft hoàn chỉnh Khả năng tạo GUI trong AutoIt góp phần làm cho nó trở nên phổ biến và tiện dụng hơn Trong GUI, bạn có thể tạo label, button, checkbox, radiobox, list, progress bar, context menu nói chung là tất tần tật những j` mà một GUI có thể có. Để tạo một ứng dụng có GUI, bạn có thể tạo bằng cách tự viết code lấy - Cái này chả khác j` với việc làm đồ họa bằng Pascal. Phải căn ke từng mili trên màn hình, sửa đổi vị trí cho hợp nhãn, túm lại là rất phiền Thử ví dụ một GUI cho dễ hình dung nhé: Code: ; GUI GuiCreate("Sample GUI", 400, 400) GuiSetIcon(@SystemDir & "\mspaint.exe", 0) ; MENU GuiCtrlCreateMenu("Menu&One") GuiCtrlCreateMenu("Menu&Two") GuiCtrlCreateMenu("MenuTh&ree") GuiCtrlCreateMenu("Menu&Four") ; CONTEXT MENU $contextMenu = GuiCtrlCreateContextMenu() GuiCtrlCreateMenuItem("Context Menu", $contextMenu) GuiCtrlCreateMenuItem("", $contextMenu) ;separator GuiCtrlCreateMenuItem("&Properties", $contextMenu) ; PIC GuiCtrlCreatePic("logo4.gif",0,0, 169,68) GuiCtrlCreateLabel("Sample pic", 75, 1, 53, 15) GuiCtrlSetColor(-1,0xffffff)