如何才能在AutoHotkey中等待三个事件中的一个(鼠标输入,键盘输入或WinWaitClose)?

时间:2017-07-19 23:34:16

标签: autohotkey

在我的场景中,窗口会自动关闭,或者用户将通过鼠标或键盘提供输入。

如果窗口自动关闭,我想打开PDF。这很简单:

WinWaitClose, ahk_id %cmdHwnd%
Run, "C:\Program Files\SumatraPDF\SumatraPDF.exe" "%path%\cv.pdf"

但是如果窗口没有自动关闭( PDF无法编译),那么用户将手动关闭该窗口,例如点击输入或点击关闭按钮。在这种情况下,我希望上述WinWaitClose触发!

另一种提出问题的方法是,我如何取消"鼠标或键盘输入时WinWaitClose监听器?

1 个答案:

答案 0 :(得分:0)

我想你可以依赖WinWaitClose中的Seconds计时器,如果失败了,你可以依赖ErrorLevel,它将被设置为1。

; Set WinWaitTimer to wait 2 seconds before timing out.
WinWaitClose, ahk_id %cmdHwnd%,, 2
if (ErrorLevel) {
    ; Do something.
}
else
{
    Run, "C:\Program Files\SumatraPDF\SumatraPDF.exe" "%path%\cv.pdf"
}