autoit入門教程小結(jié)第4/5頁(yè)
1、模擬鼠標(biāo)點(diǎn)擊(按鈕等)控件
既然是模擬用戶操作,自然就包括了模擬鼠標(biāo)點(diǎn)擊在內(nèi)。
適用命令/函數(shù):Click/MouseClick/ControlClick
其中Click/MouseClick用來(lái)模擬用戶的物理操作(點(diǎn)擊),把鼠標(biāo)點(diǎn)擊事件發(fā)送到指定坐標(biāo)位置(相對(duì)當(dāng)前窗口或絕對(duì)位置)上,但這種方法并不能保證100%的準(zhǔn)確性,屏幕分辨率、用戶干擾和系統(tǒng)環(huán)境等都會(huì)影響到它們的執(zhí)行結(jié)果,而ControlClick則直接把鼠標(biāo)點(diǎn)擊事件發(fā)送到目標(biāo)窗口的目標(biāo)控件上,因而更準(zhǔn)確,一般我們不考慮使用坐標(biāo)位置方式的點(diǎn)擊,下面僅以ControlClick為例說(shuō)明:
AHK:
ControlClick [, 目標(biāo)控件或坐標(biāo)位置, 窗口標(biāo)題, 窗口文本, 鼠標(biāo)按鈕, 點(diǎn)擊次數(shù), 選項(xiàng),排除標(biāo)題, 排除文本]
AU3:
ControlClick ( "窗口標(biāo)題", "窗口文本", 控件ID [, 按鈕] [, 點(diǎn)擊次數(shù)]] )
對(duì)AHK而言,“目標(biāo)控件”參數(shù)是指要點(diǎn)擊的控件的類別名(ClassNN)或控件文本,另外還可以使用控件句柄(若用的是控件句柄則第一個(gè)參數(shù)需留空,并在第二個(gè)參數(shù)中使用ahk_id %控件句柄%)。
Q:用什么工具來(lái)獲得目標(biāo)控件的這些信息呢?
A:AHK用戶請(qǐng)使用 AutoIt3 Window Spy,AU3用戶則請(qǐng)使用AutoIt Window Info,你可以在相應(yīng)的開(kāi)始菜單項(xiàng)目里找到它們,或者到安裝目錄下尋找。
Q:如何使用這兩個(gè)工具?
A:先打開(kāi)你要進(jìn)行操作的目標(biāo)窗口,然后運(yùn)行 AutoIt3 Window Spy 或 AutoIt Window Info,接下來(lái)就是把鼠標(biāo)移到目標(biāo)控件上(比如某個(gè)按鈕):
AutoIt3 Window Spy 使用演示截圖:

AutoIt Window Info 使用演示截圖:
現(xiàn)在我們假設(shè)已打開(kāi)并激活了“系統(tǒng)屬性”窗口,而任務(wù)是點(diǎn)擊它的“確定”按鈕,則可用以下幾種方法:
【示例4.1.1】
AHK:
ControlClick, 確定, 系統(tǒng)屬性
ControlClick, Button2, 系統(tǒng)屬性
AU3:
ControlClick("系統(tǒng)屬性", "", 1)
ControlClick("系統(tǒng)屬性", "", "Button2")
ControlClick("系統(tǒng)屬性", "", "確定")
提醒:即使目標(biāo)窗口或控件是隱藏狀態(tài),ControlClick命令還是可以“點(diǎn)擊”目標(biāo)控件,但不能保證成功率。
2、模擬鍵盤操作
鍵盤也是我們?cè)诓僮鞔翱跁r(shí)會(huì)用到的工具,比如說(shuō)在安裝軟件的時(shí)候經(jīng)典的“一路回車大法”。下面簡(jiǎn)單介紹一下模擬鍵盤操作的方法。
Send
這個(gè)是最直接的方法,就是模擬用戶按鍵行為,直接發(fā)送鍵擊命令,用法請(qǐng)參考官方文檔,在此不予說(shuō)明。
最簡(jiǎn)單的應(yīng)用――按回車:
AHK:
Run, Control Sysdm.cpl
WinWait, 系統(tǒng)屬性
Send, {Enter}
AU3:
Run("Control Sysdm.cpl")
WinWait("系統(tǒng)屬性")
Send("{Enter}")
常見(jiàn)的組合鍵――Alt+X / Ctrl+N等等,在安裝軟件的時(shí)候經(jīng)常會(huì)有提供一個(gè)按鈕“下一步(N)”,表示按下Alt+N即可觸發(fā)等同于點(diǎn)擊該按鈕的效果,其它的可觸類旁通。以打開(kāi)記事本窗口的“文件”菜單為例:
AHK:
Run, Notepad
WinWait, 無(wú)標(biāo)題 - 記事本
WinActivate, 無(wú)標(biāo)題 - 記事本
WinWaitActive, 無(wú)標(biāo)題 - 記事本
Send, !f
AU3:
Run("Notepad")
WinWait("無(wú)標(biāo)題 - 記事本")
WinActivate("無(wú)標(biāo)題 - 記事本")
WinWaitActive("無(wú)標(biāo)題 - 記事本")
Send("!f")
相關(guān)文章
使用AutoIT實(shí)現(xiàn)自動(dòng)登錄/退出客戶端軟件,刪除日志
最近在測(cè)試新版客戶端時(shí)發(fā)現(xiàn),會(huì)不定時(shí)的出現(xiàn)登錄失敗,提示信息是“連接登錄服務(wù)器失敗...”。經(jīng)過(guò)一番嘗試,發(fā)現(xiàn)在安裝客戶端后登錄,錯(cuò)誤出現(xiàn)的幾率較高。2009-03-03

