如何检查WinActivate是否成功?
问题描述:
我有一个麻烦的应用程序,有时无法激活时使用WinActivate。这通常发生在有对话提示或弹出窗口的情况下。如何检查WinActivate是否成功?
为了防止意外输入错误,我想验证窗口是否已被激活。理想情况下,我想抛出一个错误,如果WinActivate失败,如以下伪:
If !WinActivate, Calculator ; pseudo code
MsgBox 'Calculator' not found. Stopping script...
Exit, 1
}
至于我可以告诉WinActive不返回任何值,这意味着我无法直接确认是否它成功
如何检查WinActivate是否成功?
答
这试图激活一个窗口,并抱怨如果它没有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
}
}