Statt "Sleep, 1000" kann man dieses Script mit "Wait(1000)" benutzen.
Der Unterschied zwischen Sleep und Wait ist folgender:
Sleep unterbricht das Script für x Millisekunden, und führt danach das Script fort.
Wait hingegen erzeugt nach einer x Millisekunden die globale Variable "wait_done", lässt das Script dabei aber weiter laufen.
Hier ist das eigentliche Script:
wait.ahk
Code: Select all
wait(ms) {
global wait_done
wait_done := 0
SetTimer, wait, %ms%
return
}
wait:
{
SetTimer, wait, off
wait_done := 1
return
}
Code: Select all
; In functions it is needed to set the variable wait_done global.
; global wait_done
Wait(Millisekunden)
while(!wait_done)
{
; put the code at this place, what continue runs while wait() is active
; example:
; while (GetKeyState("Space" , "P"))
; MsgBox Space was pressed!!!
}
; at this point the script continue after wait() is done
Code: Select all
#Persistent
#SingleInstance
wartezeit := 5000
;~ gosub sleep_test
gosub wait_test
return
#include wait.ahk
sleep_test:
{
TrayTip,, Sleep = %wartezeit% ms
Sleep, %wartezeit%
while (GetKeyState("Space" , "P"))
MsgBox Space wurde gedrückt!!!
MsgBox, Sleep ist fertig
ExitApp
}
wait_test:
{
TrayTip,, Wait = %wartezeit% ms
Wait(wartezeit)
while(!wait_done)
{
while (GetKeyState("Space" , "P"))
MsgBox Space wurde gedrückt!!!
}
MsgBox, Wait ist fertig
ExitApp
}
Edit: Spoiler entfernt, da dieser sich (in meinem Browser) nicht öffnen ließ