AutoIt v3 的其中一個最優(yōu)秀的新功能就是提供了直接操作某些窗口控件的支持。我們在窗口上能看到的東西大多都是以下控件的一種:按鈕、列表框、文本編輯框、靜態(tài)文本等。比如說系統(tǒng)自帶的記事本程序的主窗口也不過只是一個相對而言比較大一點的“編輯框(Edit)”控件罷了!正因為 AutoIt 提供了直接對控件操作的途徑,我們再也不需要(也不應(yīng)該)使用模擬鍵擊等低級的方法來操作窗口了,這使得需要實現(xiàn)窗口操作的腳本更加可靠。
注意: AutoIt 僅支持標(biāo)準(zhǔn)的 Microsoft 控件 - 有些應(yīng)用程序(的作者)自己寫的自定義控件看起來很像是標(biāo)準(zhǔn)的 MS 控件,但卻無法被腳本程序識別,那就只能靠您的經(jīng)驗判斷了,實踐出真理!
運行 AutoIt Window Info 之后您可以試著把鼠標(biāo)移動到自己感興趣的窗口上,在 Window Info 的窗口就會顯示當(dāng)前鼠標(biāo)經(jīng)過的控件的信息。這些信息包括:
如果你看到某個 Control...() 函數(shù)要求提供 控件ID(ControlID)作為參數(shù)(實際上大部分控件函數(shù)都需要此參數(shù)),那么您就可以使用這些信息中的任意一種來作為參數(shù)傳遞到函數(shù)中。具體使用哪一種方法其實主要看您的個人喜好以及從 AutoIt Window Info 中能獲得的信息類型,一般而言,最好的方法就是使用控件ID(ControlID),但如果控件ID無法獲得或者是靠控件ID還不足以保證能識別目標(biāo)控件(比如說同時有幾個控件ID相同的控件存在,這種情況通常發(fā)生在靜態(tài)文本控件上),那么就需要換為另外的三種方法之一了。
控件 ID 是指Windows指定給每個控件的數(shù)值型標(biāo)識符(實際上就是整數(shù)值)。通常這是用來識別控件的最好的方法。除了 AutoIt Window Info 之外,還有其他的應(yīng)用程序比如某些給盲人用的讀屏軟件或者其它使用 Microsoft API 寫的工具也能獲得控件ID。
每個標(biāo)準(zhǔn)的 Microsoft 控件都具有“類別名”,比如“button(按鈕)”或者“edit(編輯框)”等等。在 AutoIt 中還把它跟該控件的“實例”組合起來,并稱為“ClassNameNN”。比如說某個對話框的上面有三個按鈕,則通常它們的“ClassNameNN”就是"Button1", "Button2", "Button3"如此之類。
當(dāng)控件ID不適用的時候就可以考慮使用這個方法(這種情況通常發(fā)生在靜態(tài)文本控件上)。
也許你也注意到 AU3Info(AutoIt Window Info) 還給出了控件上的文本信息,例如某個按鈕 Next 則在 AU3Info 上看到的就是 &Next (“&”號表示后面跟著的字符將帶有下劃線,其實我們還能在菜單和其它控件上發(fā)現(xiàn)這個符號)。如果您喜歡的話也可以用這些文本代替“ClassNameNN”來識別控件,但是如果有多個控件的文本都相同的話可就有麻煩了。
如果要獲得某個控件的句柄則可使用 ControlGetHandle 函數(shù)?丶浔荳indows賦予控件的(獨一無二的)標(biāo)識符。每個被創(chuàng)建的控件都具有不同的句柄。用戶在使用控件句柄來對控件操作之前應(yīng)該確定自己對句柄是非常熟悉的。
請到這里 函數(shù)說明(Function Reference) \ 窗口管理(Window Management) \ 控件(Controls) 查看控件函數(shù)的說明。