如何在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的