2011-02-08 57 views
0

我很自動的新手。我有2個問題。在AutoIt中設置控制文本與窗外文本和標題

  1. 如何使用ControlFocus(「」,「」,「[X:643; Y:339]」)時寡婦沒有文字和沒有title.Please看看下面的窗口和控制信息通過窗口觀看舉報人。

窗口< < < < 標題: 類:WindowsForms10.Window.8.app.0.33c0d9d 位置:0,0 尺寸:1024,768 風格: 0x16010000 ExStyle:0x00010000 句柄:0x005201E0

<控制< < < 類別:WindowsForms10.EDIT.app.0.33c0d9d 實例:2 ClassnameNN:WindowsForms10.EDIT.app.0.33c0d9d2 名稱:txtConsumerNo 高級(類):[NAME:txtConsumerNo] ID: 15270262 文本: 位置:638,237 尺寸:263,30個 ControlClick座標:38,27 風格:0x560100C0 擴展風格:0x00000200 手柄:0x00E90176

怎麼可能與這個控件進行交互?

  1. 我想調用此控件的文本更改事件。這怎麼可能

回答

3

如果你正在處理一個沒有文本和標題的窗口,首先用WinGetHandle獲取窗口的句柄可能會更容易。您可以在活動窗口獲取句柄,像這樣:

$hWnd = WinGetHandle("[ACTIVE]") 

對於你有很多的選項控制交互。您最好的選擇可能是使用控件的名稱,即:txtConsumerNo。如果你這樣使用ControlFocus,它就會起作用。請注意,$ hWnd來自上面的WinGetHandle語句。

ControlFocus($hWnd, "", "[NAME:txtConsumerNo]") 

我建議不要使用控件的X和Y位置。它可能很難找到正確的控制。當其他方法可用時,如姓名或班級,這些都是非常受歡迎的。

您可以使用ControlSetText方法更改AutoIt中另一個控件的文本。它會自動爲您調用「文本更改事件」。有關ControlSetText的文檔,請參閱幫助文件。它的工作方式與ControlFocus類似。

+0

感謝Manadar。我這樣做爲 首先我找到WinGetHandle窗口的句柄(「[ACTIVE]」) 然後我使用ControlSetText(窗口句柄,「」,「控制名稱」,「文本發送」)。它的工作就像一個魅力。但我仍然在處理文本更改事件。請讓我知道如果您知道如何將函數放在事件後面,就像在c#或jave中做的那樣。 – 2011-02-09 18:39:28