欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

autoit入門教程小結(jié)第3/5頁(yè)

 更新時(shí)間:2008年06月19日 09:14:04   作者:  
對(duì)于聽(tīng)說(shuō)過(guò)autoit腳本的朋友,下面的入門教程是個(gè)不錯(cuò)的教材,建議大家看看

注意:窗口標(biāo)題和窗口文本參數(shù)總是對(duì)大小寫敏感的。
1、等待窗口系列命令/函數(shù)
AHK和AU3都提供了用法類似的一組窗口等待命令/函數(shù):WinWait/WinWaitActive/WinWaitClose。
它們分別用于等待窗口出現(xiàn)、等待窗口被激活、等待窗口被關(guān)閉。由于這些命令/函數(shù)的參數(shù)類似,現(xiàn)僅以WinWait為例說(shuō)明。
AHK:
WinWait [, 窗口標(biāo)題, 窗口文本, 超時(shí)時(shí)間, 排除標(biāo)題, 排除文本]
AU3:
WinWait ( "窗口標(biāo)題" [, "窗口文本" [, 超時(shí)時(shí)間]] )
WinWait 的作用是在目標(biāo)窗口出現(xiàn)之前不再執(zhí)行后面的所有語(yǔ)句。
假設(shè)我們要運(yùn)行記事本程序,并在其窗口出現(xiàn)時(shí)提示用戶:
【示例 3.1.1 】

AHK:
Run Notepad
WinWait, 無(wú)標(biāo)題 - 記事本
MsgBox 記事本窗口已被打開(kāi)!
AU3:
Run("Notepad")
WinWait("無(wú)標(biāo)題 - 記事本")
MsgBox(0, "", "記事本窗口已被打開(kāi)!")

2、激活窗口相關(guān)命令/函數(shù)
讓目標(biāo)窗口成為活動(dòng)窗口的辦法就是激活它,可用的命令/函數(shù)是WinActivate:
AHK:
WinActivate [,窗口標(biāo)題, 窗口文本, 排除標(biāo)題, 排除文本]
AU3:
WinActivate ( "窗口標(biāo)題" [, "窗口文本"] )

3、關(guān)閉窗口
關(guān)閉窗口有兩種方式,一種是正常的關(guān)閉窗口(WinClose),另一種則是強(qiáng)行關(guān)閉窗口(WinKill):
AHK:
WinClose/WinKill [,窗口標(biāo)題, 窗口文本, 超時(shí)時(shí)間,, 排除標(biāo)題, 排除文本]
AU3:
WinClose/WinKill ( "窗口標(biāo)題" [, "窗口文本"] )

現(xiàn)在我們已經(jīng)可以實(shí)現(xiàn)一個(gè)比較簡(jiǎn)單的功能了,比如我們可以打開(kāi)系統(tǒng)屬性窗口并等待其出現(xiàn),窗口出現(xiàn)后激活它,接著等待3秒再關(guān)閉它:
【示例 3.1.2 】

AHK:
Run, Sysdm.cpl
WinWait, 系統(tǒng)屬性
WinActivate, 系統(tǒng)屬性
WinWaitActive, 系統(tǒng)屬性
Sleep, 3000
WinClose, 系統(tǒng)屬性
WinWaitClose, 系統(tǒng)屬性
AU3:
Run("Control Sysdm.cpl")
WinWait("系統(tǒng)屬性")
WinActivate("系統(tǒng)屬性")
WinWaitActive("系統(tǒng)屬性")
Sleep(3000)
WinClose("系統(tǒng)屬性")
WinWaitClose("系統(tǒng)屬性")

建議:如果程序中頻繁地出現(xiàn)要用到這些窗口標(biāo)題的地方,會(huì)帶來(lái)一個(gè)問(wèn)題:腳本的可讀性,也許你會(huì)想,這不是很直觀嗎?可問(wèn)題是如果這個(gè)重復(fù)出現(xiàn)的窗口標(biāo)題是個(gè)很長(zhǎng)的字符串呢?這將嚴(yán)重影響整個(gè)代碼的排版美觀。而且我們也無(wú)從了解這些窗口標(biāo)題的“來(lái)頭”,不知道這個(gè)窗口標(biāo)題究竟是怎么來(lái)的。而如果我們定義一個(gè)變量(假設(shè)變量名是“AppWindow1”)保存這個(gè)窗口標(biāo)題,我們就能在命令/函數(shù)中用變量來(lái)表示它,這樣就達(dá)到了讓代碼用意更清晰一點(diǎn)的目的。另外,就算目標(biāo)軟件因某些原因(比如升級(jí))而改變了它的窗口標(biāo)題,我們也能很方便地作出修改。

4、更準(zhǔn)確的標(biāo)識(shí)窗口的方法(主要針對(duì)AHK腳本)
程序在運(yùn)行時(shí)起碼會(huì)有一個(gè)進(jìn)程,如果能獲得這個(gè)進(jìn)程ID就能在一定程度上保證對(duì)窗口的準(zhǔn)確標(biāo)識(shí)。另外,每個(gè)窗口都有定義窗口類名(Class,比如說(shuō)記事本窗口的類名就是Notepad),所以我們可以以此排除與目標(biāo)窗口不同的其它窗口類。其實(shí),我們還有一個(gè)更準(zhǔn)確的方法:
每個(gè)窗口(包括控件在內(nèi))都被Windows指派了一個(gè)可區(qū)別于其它窗口的唯一的標(biāo)識(shí)符(ID),我們稱之為窗口句柄(HWND)。
直接給定窗口標(biāo)題來(lái)表示窗口的一個(gè)缺點(diǎn)就是無(wú)法保證在腳本運(yùn)行的過(guò)程中始終以該窗口為操作目標(biāo),因?yàn)樵谶@個(gè)過(guò)程中很有可能會(huì)有其它“同名”窗口(或者說(shuō)滿足匹配條件的窗口)出現(xiàn),而如果我們使用這個(gè)標(biāo)識(shí)符來(lái)表示窗口自然就能保證命令/函數(shù)的操作窗口總是同一個(gè)窗口了。
我們先來(lái)了解一下獲得窗口句柄的命令/函數(shù):
AHK:
WinGet[, 輸出變量, ID, 窗口標(biāo)題, 窗口文本, 排除標(biāo)題, 排除文本]
AU3:
WinGetHandle ( "窗口標(biāo)題" [, "窗口文本"] )
其中WinGet獲得的窗口ID將通過(guò)“輸出變量”返回,而WinGetHandle的返回值就是獲得的窗口ID。

我們?cè)谶M(jìn)行自動(dòng)化操作時(shí)是要先運(yùn)行某個(gè)程序,如何獲得這個(gè)程序成功運(yùn)行后顯示的窗口句柄?一個(gè)比較保險(xiǎn)的辦法是先獲得這個(gè)程序的進(jìn)程ID,然后根據(jù)這個(gè)進(jìn)程ID獲得它的窗口句柄,AHK支持使用進(jìn)程ID作為窗口標(biāo)題使用;但AU3不支持這樣使用,只能先獲得該窗口的類名再根據(jù)該類名來(lái)獲得窗口句柄(不夠保險(xiǎn)):
【示例 3.1.3 】
AHK:
Run, NotePad, , , ThisPID
WinWait, ahk_pid %ThisPID%

;這里的ahk_pid表明跟在后面的變量是進(jìn)程ID
WinGet, ThisID, ID, ahk_pid %ThisPID%

;ThisID將保存獲得的窗口句柄
AU3:

Opt("WinTitleMatchMode", 4)
Run("Notepad")
$handle = WinGetHandle("classname=Notepad")
現(xiàn)在暫且先忘記了AU3吧,因?yàn)樗拇翱诤瘮?shù)一般都不支持使用窗口句柄作為(窗口標(biāo)題)參數(shù)。
至于如何在AHK中使用窗口句柄,簡(jiǎn)單的說(shuō),凡是有“窗口標(biāo)題”參數(shù)的命令就可以用窗口句柄來(lái)代替,比如:
【示例 3.1.4 】
AHK:
Run, Notepad, , , ThisPID

;先獲得運(yùn)行的記事本程序的進(jìn)程ID
WinWait, 無(wú)標(biāo)題 - 記事本 ahk_pid %ThisPID%

;等待該進(jìn)程窗口的出現(xiàn)
WinGet, ThisHWND, ID, 無(wú)標(biāo)題 - 記事本 ahk_pid %ThisPID%

;獲得窗口句柄
WinActivate, ahk_id %ThisHWND%
;這里的ahk_id表明跟在后面的變量是窗口句柄
WinWaitActive, ahk_id %ThisHWND%
Sleep, 3000
WinClose, ahk_id %ThisHWND%
WinWaitClose, ahk_id %ThisHWND%

相關(guān)文章

  • autoit GUI相關(guān)知識(shí)

    autoit GUI相關(guān)知識(shí)

    AutoIt 腳本可創(chuàng)建(由窗口及其控件組成的)簡(jiǎn)單的圖形用戶界面(GUI)。
    2008-06-06
  • Au3截取騰訊天氣的腳本

    Au3截取騰訊天氣的腳本

    騰訊的天氣是相當(dāng)?shù)臏?zhǔn)呀.而且還有實(shí)時(shí)天氣, 今天把它給應(yīng)用上了,附上源代碼拋磚引玉.
    2008-09-09
  • 使用AutoIT實(shí)現(xiàn)自動(dòng)登錄/退出客戶端軟件,刪除日志

    使用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
  • AutoIT寫的禁止QQ運(yùn)行的程序代碼

    AutoIT寫的禁止QQ運(yùn)行的程序代碼

    autoit的東西,確實(shí)不錯(cuò),推薦大家學(xué)習(xí)之,最近沒(méi)時(shí)間,稍后我們一起學(xué)習(xí)
    2008-06-06
  • autoit自定義函數(shù)

    autoit自定義函數(shù)

    所謂函數(shù)是指可在腳本中調(diào)用并實(shí)現(xiàn)特定“功能”的代碼片段。在 AutoIt 中有兩種函數(shù),包括 內(nèi)建函數(shù) 和 自定義函數(shù)。
    2008-06-06
  • autoit InputBox 函數(shù)

    autoit InputBox 函數(shù)

    顯示以一個(gè)輸入框以供用戶輸入數(shù)據(jù)。InputBox ( "標(biāo)題", "提示信息" [, "默認(rèn)數(shù)據(jù)" [, "密碼字符" [, 寬度, 高度 [, 左邊, 上邊 [, 超時(shí)時(shí)間]]]]] )
    2008-06-06
  • autoit3最新漢化版下載

    autoit3最新漢化版下載

    想運(yùn)行.au3的朋友必備,因這個(gè)東西,確實(shí)不錯(cuò),我們提出程序的最低版本都基本是autoit3
    2008-06-06
  • autoit HotKeySet 函數(shù)

    autoit HotKeySet 函數(shù)

    HotKeySet 設(shè)置一個(gè)可調(diào)用某用戶函數(shù)的熱鍵。
    2008-06-06
  • 獲取外網(wǎng)IP并發(fā)送到指定的郵箱的腳本

    獲取外網(wǎng)IP并發(fā)送到指定的郵箱的腳本

    來(lái)自小A的源碼,其實(shí)用到的全部是AU3自帶的UDF,非常有學(xué)習(xí)的意義!功能:獲取外網(wǎng)IP并將IP發(fā)送到配置文件中定義的郵箱
    2012-05-05
  • autoit 更改個(gè)人文件夾的小工具

    autoit 更改個(gè)人文件夾的小工具

    功 能:更改個(gè)人文件夾的位置 原 理:找到注冊(cè)表中的相應(yīng)位置,顯示出來(lái),并通過(guò)修改對(duì)應(yīng)的鍵值來(lái)指定路徑。 注意事項(xiàng):本程序不移動(dòng)文件夾,只是指定路徑;修改完成后,請(qǐng)馬上重新啟動(dòng)。
    2008-07-07

最新評(píng)論