2017-09-05 506 views
2

我有一個麻煩的應用程序,有時無法激活時使用WinActivate。這通常發生在有對話提示或彈出窗口的情況下。如何檢查WinActivate是否成功?

爲了防止意外輸入錯誤,我想驗證窗口是否已被激活。理想情況下,我想拋出一個錯誤,如果WinActivate失敗,如以下僞:

If !WinActivate, Calculator ; pseudo code 
    MsgBox 'Calculator' not found. Stopping script... 
    Exit, 1 
} 

至於我可以告訴WinActive不返回任何值,這意味着我無法直接確認是否它成功

如何檢查WinActivate是否成功?

回答

3

這試圖激活一個窗口,並抱怨如果它沒有2秒內成功

WinActivate windowTitle 
WinWaitActive windowTitle, , 2 
if ErrorLevel 
{ 
    MsgBox 'windowTitle' not found. Stopping script... 
    Exit 1 
} 

相同的代碼包裝在一個通用函數

F2::activate("Untitled - Notepad") 

activate(title) 
{ 
    WinActivate %title% 
    WinWaitActive %title%, , 2 
    if ErrorLevel 
    { 
    MsgBox '%title%' not found. Stopping script... 
    Exit 1 
    } 
}