1. 簡介
autoit是一個使用類似BASIC指令碼語言的小工具,用來製作自動完成重複性任務的指令碼,比如自動登入qq、登入郵箱、登入遊戲用戶端等。
特點:
l 文法類似於BASIC,非常簡單,初中生絕對可以學會
l 有漢化版本,使用方便
l 協助文檔和函數庫豐富
l 網上資料很多,中文論壇和英文論壇非常活躍,疑難雜症容易找到答案
l 支援unicode
l 相容windows的大多數作業系統
l 支援Vista的UAC存取控制
l 等等
能夠做的事情:
l 運行Windows和Dos程式
l 類比鍵盤按鍵,如單擊、雙擊、右鍵
l 類比滑鼠移動和點擊,控制移動速度
l 對視窗建立、移動、調整大小、關閉等操作
l 訪問視窗中的控制項,如文字框、下拉框,可以擷取文本、設定文本、選中等操作
l 配合剪貼簿進行複製、粘貼
l 訪問外部磁碟的檔案,開啟、讀取、寫入、關閉等
l 訪問外部資料庫,標配是SQLite
l 支援網路通訊協議,如http、ftp、tcp、udp
l 可以訪問註冊表
l 可以調用Win32的api
l 可以編譯成exe檔案,方便執行
l 等等
2. 安裝
官網是http://www.autoitscript.com/,國內可以訪問。
中文論壇是http://www.autoitx.com,只能在晚上10點到10點半之間才能註冊。
軟體有漢化版本,大家可以選擇原版或者漢化版本。
安裝後的目錄結構如下:
解釋一下關鍵目錄及檔案含義:
Aut2Exe 檔案夾包含如何把指令檔打包成exe
AutoItX 檔案夾含有activeX,用於其他程式通過dll方式使用autoit
Extras 檔案夾含有錄屏軟體,可以錄屏回放,可以直接修改錄屏的指令碼
Au3Info.exe 是一個捕獲視窗資訊的小工具,非常重要,非常好用
AU3TOOL.exe 是編寫指令碼的編輯器,非常重要,非常好用
AutoIt3CHS.chm 是漢化的協助文檔,必須通讀
UDFs3CHS.chm 是使用者自訂函數的協助文檔,還有大量調用win32 api的函數
簡曆.doc 是漢化作者的簡曆,不是本人的廣告貼
3. 使用
在協助文檔中已經有非常詳細的使用說明,我不再重複。
視窗資訊工具很有用,
實現思路是捕獲視窗,然後尋找視窗的控制項。控制項的標識如下定義:
這些內容在小工具中都有體現。因此使用autoit開發,方便就在這裡。
一定要注意:被操作的進程重啟後,控制項的這些標識都會改變。
寫指令碼的時候有幾個易出錯的地方:
l 注釋使用分號,不是雙斜線
l 判斷語句使用if …. then …. endif
l 函數定義使用 fun … endfunc
l MsgBox函數有三個參數,一定都要輸入
l 字串拼接使用 “&”
l 退出迴圈使用ExitLOOP
l 錯誤資訊在@error中
4. 模組開發
寫大的程式,一定要分到多個檔案,只要有一個是主檔案就行。對於一些變數定義,也要放到統一的地方,這都是非常有好處的。
比如我在應用中,就分了很多檔案,每個檔案不同的功能。有共性的內容放到一個檔案中。
項目中有au3檔案,是必備的指令碼;exe檔案是編譯後的可執行檔;ini檔案是用戶端的容易變化的資訊,如使用者名稱、密碼等;jar檔案封裝了java調用exe檔案的操作。
5. 打包發布
使用au2exe,可以把指令碼編譯成exe檔案。
如果要編譯成控制台程式,請勾選最後一項。
6. 常用函數
WinActivate 啟用視窗
ControlClick 點擊控制項的某個位置
MouseMove 移動游標
MouseDown 按下滑鼠左鍵
Sleep 程式睡眠
ConsoleWrite 向控制台輸出
Send 發送鍵盤資訊
ControlGetPos 得到控制項的座標位置
ControlCommand 控制文字框、下拉框的文本、選項
常用的調用Win32 api的函數
_WinAPI_GetWindow
7. 結語
autoit可以遍曆進程、可以獲得控制代碼。如果想穩定控製程序,需要用到進程和控制代碼,可以使用Spy4Win工具來配合抓控制代碼。
在學習和使用autoit的過程中,遇到了很多問題,也查閱了很多資料,以上是我工作心得,拋磚引玉,希望對大家有用。
相信我,使用autoit,可以節省您很多時間。