Bonjour,
Je souhaiterais écrire mon code de façon à lancer créer un délai (analogue à sleep), mais que je puisse sauter en appuyant sur une touche, c'est à dire, j'ai beau chercher et essayer de nombreuse méthodes je n'y arrive pas du tout ... Merci d'avance !
réduire le temps d'attendre
-
- Posts: 1
- Joined: 03 Apr 2017, 16:12
Re: réduire le temps d'attendre
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.
ou encore:
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).
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
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
Re: réduire le temps d'attendre
Yop !
Ma proposition sinon (moins de timer, mais un label) :
Ma proposition sinon (moins de timer, mais un label) :
Code: Select all
!i:: ; ALT+I
MsgBox, Un nouveau MsgBox apparaîtra dans 4 secondes à moins que n'appuies sur les touches ALT+X entre deux.
SetTimer, mesActions, 4000
Return
!x:: ; ALT+X
mesActions:
SetTimer, mesActions, Off
MsgBox, test
Re: réduire le temps d'attendre
Quand je disais que "Je suis pas sûr que c'est la meilleure solution", je soupçonnais qu'il y avait une solution plus pertinente... Ta solution avec SetTimer estPaneb wrote:Yop !
Ma proposition sinon (moins de timer, mais un label) :
Code: [Tout sélectionner] [Download] GeSHi © Codebox Plus
!i:: ; ALT+I
MsgBox, Un nouveau MsgBox apparaîtra dans 4 secondes à moins que n'appuies sur les touches ALT+X entre deux.
SetTimer, mesActions, 4000
Return
!x:: ; ALT+X
mesActions:
SetTimer, mesActions, Off
MsgBox, test
plus intuitive.
Re: réduire le temps d'attendre
Je me suis déjà retrouvé face au problème, donc la solution ne m'était pas étrangère .
Par contre le problème du Timer c'est qu'il se répète par défaut, faut pas zapper le off (une boucler for à au moins le mérite dans tous les cas de ne s’exécuter qu'une fois ^^).
Par contre le problème du Timer c'est qu'il se répète par défaut, faut pas zapper le off (une boucler for à au moins le mérite dans tous les cas de ne s’exécuter qu'une fois ^^).
Re: réduire le temps d'attendre
pour que ca ne répète pas il faut simplement mettre un délais négatif.
SetTimer, mesActions, -4000
SetTimer, mesActions, -4000
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]
Return to “J'ai besoin d'aide”
Who is online
Users browsing this forum: No registered users and 35 guests