我有一个麻烦的应用程序,有时在使用WinActivate时无法激活。如果有一个打开的对话框提示或弹出窗口,通常会发生这种情况。
为防止意外输入错误,我想验证窗口是否已被激活。理想情况下,如果WinActivate失败,我想抛出一个错误,例如在下面的伪代码中:
If !WinActivate, Calculator ; pseudo code
MsgBox 'Calculator' not found. Stopping script...
Exit, 1
}
据我所知,WinActive没有返回任何值,这意味着我无法直接检查它是否成功
如何检查WinActivate是否成功?
答案 0 :(得分: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
}
}