如何在AutoHotkey中只等待三个事件之一(鼠标输入,键盘输入或WinWaitClose)?
问题描述:
在我的场景中,一个窗口会自动关闭,或者用户将通过鼠标或键盘提供输入。如何在AutoHotkey中只等待三个事件之一(鼠标输入,键盘输入或WinWaitClose)?
如果窗口自动关闭,我想打开一个PDF。这很容易:
WinWaitClose, ahk_id %cmdHwnd%
Run, "C:\Program Files\SumatraPDF\SumatraPDF.exe" "%path%\cv.pdf"
但如果窗口不自动关闭(即的PDF无法编译),则用户会关闭该窗口手动,例如点击输入或点击关闭按钮。在这种情况下,我做不是想要上面的WinWaitClose
来触发!
因此,我的问题的另一种方式是,如何在鼠标或键盘输入时“取消”WinWaitClose
侦听器?
答
我想你可以在WinWaitClose
依靠秒计时器,如果失败,你可以依靠,这将被设置为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"
}
ERRORLEVEL的