如何检查WinActivate是否成功?

时间:2017-09-05 19:21:56

标签: autohotkey

我有一个麻烦的应用程序,有时在使用WinActivate时无法激活。如果有一个打开的对话框提示或弹出窗口,通常会发生这种情况。

为防止意外输入错误,我想验证窗口是否已被激活。理想情况下,如果WinActivate失败,我想抛出一个错误,例如在下面的伪代码中:

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

据我所知,WinActive没有返回任何值,这意味着我无法直接检查它是否成功

如何检查WinActivate是否成功?

1 个答案:

答案 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
  }
}