réduire le temps d'attendre

Poser vos questions de programmation en AutoHotkey
Heukayothe
Posts: 1
Joined: 03 Apr 2017, 16:12

réduire le temps d'attendre

03 Apr 2017, 16:19

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 !
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: réduire le temps d'attendre

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).
my scripts
Paneb
Posts: 54
Joined: 24 Aug 2015, 05:02
Location: France
Contact:

Re: réduire le temps d'attendre

04 Apr 2017, 11:52

Yop !

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
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: réduire le temps d'attendre

04 Apr 2017, 14:39

Paneb 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
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 est
plus intuitive.
my scripts
Paneb
Posts: 54
Joined: 24 Aug 2015, 05:02
Location: France
Contact:

Re: réduire le temps d'attendre

05 Apr 2017, 02:58

Je me suis déjà retrouvé face au problème, donc la solution ne m'était pas étrangère :D.
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 ^^).
User avatar
joedf
Posts: 8949
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: réduire le temps d'attendre

05 Apr 2017, 21:58

pour que ca ne répète pas il faut simplement mettre un délais négatif.
SetTimer, mesActions, -4000
Image Image Image Image Image
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 17 guests