Post by A_AhkUser » 04 Apr 2017, 08:26
Salut,
Je suis pas sûr que c'est la meilleure solution mais tu peux par exemple créer une variable (ici
interrompre), laquelle est évaluée après un
sleep de 10ms par un
while loop de
temps_imparti/10 (en ms) tours.
Si cette variable change de valeur durant l'exécution du
Loop celui-ci s''interrompt avant d'atteindre le temps imparti.
Code: Select all
!i:: ; ALT+I
interrompre := false
i := 0
MsgBox, Un nouveau MsgBox apparaîtra dans 4 secondes à moins que n'appuies sur les touches ALT+X entre deux.
While (not interrompre and ++i < 400) { ; 400*10 == 4000ms == 4 secondes
sleep, 10
}
MsgBox, test
return
!x:: ; ALT+X
interrompre := true
return
ou encore:
Code: Select all
!i:: ; ALT+I
interrompre := false
i := 0
MsgBox, Un nouveau MsgBox apparaîtra dans 4 secondes à moins que n'appuies sur les touches ALT+X entre deux.
While (not interrompre and ++i < 40) { ; 40*100 == 4000ms == 4 secondes
sleep, 100
}
MsgBox, test
return
!x:: ; ALT+X
interrompre := true
return
Personnellement si j'étais toi, j'opterais pour le second étant donné qu'il loop moins et à intervalles plus longues (pourvu du moins que tu ne sois pas à quelque dizaine de millisecondes près, ce qui est peut être le cas bien sûr).
Salut,
Je suis pas sûr que c'est la meilleure solution mais tu peux par exemple créer une variable (ici [c]interrompre[/c]), laquelle est évaluée après un [c]sleep[/c] de 10ms par un [c]while loop[/c] de [c]temps_imparti/10[/c] (en ms) tours.
Si cette variable change de valeur durant l'exécution du [c]Loop[/c] celui-ci s''interrompt avant d'atteindre le temps imparti.
[code]!i:: ; ALT+I
interrompre := false
i := 0
MsgBox, Un nouveau MsgBox apparaîtra dans 4 secondes à moins que n'appuies sur les touches ALT+X entre deux.
While (not interrompre and ++i < 400) { ; 400*10 == 4000ms == 4 secondes
sleep, 10
}
MsgBox, test
return
!x:: ; ALT+X
interrompre := true
return[/code]
ou encore:
[code]!i:: ; ALT+I
interrompre := false
i := 0
MsgBox, Un nouveau MsgBox apparaîtra dans 4 secondes à moins que n'appuies sur les touches ALT+X entre deux.
While (not interrompre and ++i < 40) { ; 40*100 == 4000ms == 4 secondes
sleep, 100
}
MsgBox, test
return
!x:: ; ALT+X
interrompre := true
return
[/code]
Personnellement si j'étais toi, j'opterais pour le second étant donné qu'il loop moins et à intervalles plus longues (pourvu du moins que tu ne sois pas à quelque dizaine de millisecondes près, ce qui est peut être le cas bien sûr).