2013-04-23 103 views
1

在MDI應用程序中自動化一個進程時,我嘗試使用AutoHotKey。AutoHotKey:獲取mdi窗口

在給定的時間,在MDI應用程序中彈出一個新的mdi子窗口彈出窗口,並且我想「等待」我的autohotkey腳本,直到它打開。

所以我正在尋找一個循環,檢查控制(mdi子)是否存在。

使用ControlGet,我似乎無法得到mdi孩子。

這是我想知道的孩子是否存在與否。

AutoSpy:

(現在在鼠標光標)

ClassNN:FNWND31101
文字:短語提取

enter image description here

也許我沒有使用正確的AutoHotkey函數來找到這個?

腳本

WinWait, FNWND31101,, 10 
if ErrorLevel 
{ 
    MsgBox, WinWait timed out. 
    return 
} else 
{ 
    MsgBox, Found control 
} 

enter image description here

回答

1

嘗試使用winwait這樣的:

winwait, FNWND3110 

該窗口ID:FNWND3110和鼠標下的對象具有ID:FNWND31101

看看這些網址:

http://www.autohotkey.com/board/topic/85114-detecting-new-child-window/

http://www.autohotkey.com/board/topic/8398-how-to-winwait-a-mdi-child-window/

而且MouseGetPos的最後一個參數: http://www.autohotkey.com/docs/commands/MouseGetPos.htm

否則,請在AHK論壇:http://www.autohotkey.com/board/

+0

更新我原來張貼的腳本。它找不到mdi孩子。使用MacroRecorder當我點擊mdi孩子時,我沒有看到任何WinActivate。 – Kman 2013-04-23 10:41:54

+0

剛編輯我的答案。 WinWait應該等到FNWND3110打開,然後繼續執行腳本。如果你想控制一個特定的對象,使用較長的代碼(這是不常見的,通常對象被命名爲button1或edit1) – 2013-04-23 11:15:18

+0

FNWND3110實際上是MDI容器,它是開放的。 mdi孩子是鼠標下的對象。我添加了一張顯示它的新圖片。 – Kman 2013-04-23 11:59:52