2017-09-05 510 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 
    } 
}