2017-07-19 1 views
0

Dans mon scénario, une fenêtre se fermera automatiquement ou l'utilisateur fournira une entrée via la souris ou le clavier.Comment puis-je attendre un seul des trois événements (entrée de la souris, saisie au clavier ou WinWaitClose) dans AutoHotkey?

Si la fenêtre se ferme automatiquement, je souhaite ouvrir un fichier PDF. C'est facile:

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

Mais si la fenêtre ne ferment automatiquement (à savoir le PDF n'a pas réussi à compiler), l'utilisateur va fermer cette fenêtre manuellement, par exemple frappé Entrez ou cliquez sur le bouton fermer. Dans ce cas, je ne pas voulez le WinWaitClose ci-dessus pour déclencher! Donc, une autre façon de poser ma question est, comment puis-je "annuler" un écouteur WinWaitClose à l'entrée de la souris ou du clavier?

Répondre

0

Je suppose que vous pouvez compter sur la minuterie en secondes WinWaitClose, et si cela échoue, vous pouvez compter sur la ErrorLevel qui sera mis à 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" 
}