Bonjour a tous,
Voila j'ai fais un petit scripts qui automatise plusieurs actions sur mon pc et qui tourne en boucle infinie...
Je voudrais donc savoir comment faire pour lors de l'appui de n'importe quel touche sur mon clavier (ou même de la souris) celui s'arrête automatiquement.
J'ai vu la fonction : Hotkeyset
Le problème c'est qui faut faire toutes les touches une par une... :s
[..] Evenement
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[..] Evenement
Modifié en dernier par ani le sam. 04 juil. 2009 19:49, modifié 1 fois.
Raison : Ajout de la balise [..] dans le titre
Raison : Ajout de la balise [..] dans le titre
- orax
- Modérateur

- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] Evenement
Un hook global clavier et souris devrait faire l'affaire.
Cherchez hook keyboard et hook mouse ici ou sur le forum anglais.
Un exemple ici avec F3 : http://www.autoitscript.com/forum/index ... t&p=591697
Cherchez hook keyboard et hook mouse ici ou sur le forum anglais.
Un exemple ici avec F3 : http://www.autoitscript.com/forum/index ... t&p=591697
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [..] Evenement
On peut couvrir un large choix de touche avec _ispressed sans trop ce prendre la tête.
Code : Tout sélectionner
#include <Misc.au3>
$dll = DllOpen("user32.dll")
While 1
Sleep ( 50 )
for $loop = 1 to 92 step 1
If _IsPressed($loop, $dll) Then
Exit
ExitLoop
EndIf
Next
WEnd
DllClose($dll)-
SagePourpre
- Niveau 7

- Messages : 442
- Enregistré le : dim. 06 juil. 2008 09:11
- Status : Hors ligne
Re: [..] Evenement
_isPressed est cependant lent... Il prend du temps avant de faire effet (approximativement 500 ms)
J'irais peut-être voir du côté du lien d'Orax si j'étais toi.
Le script sur le forum anglais devrait réagir instantanément...
J'irais peut-être voir du côté du lien d'Orax si j'étais toi.
Le script sur le forum anglais devrait réagir instantanément...
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
plus belle vue du haut de son Pouf = )
Re: [..] Evenement
500ms ? C'est bizarre, c'est instantané pour moi.
-
SagePourpre
- Niveau 7

- Messages : 442
- Enregistré le : dim. 06 juil. 2008 09:11
- Status : Hors ligne
Re: [..] Evenement
Vraiment ? ...jumby a écrit :500ms ? C'est bizarre, c'est instantané pour moi.
Voilà ma preuve
Le code ci-dessous est très simple
Appuie sur Home pour faire apparaître un tooltip évolutif.
Pause pour le mettre en pause
End pour l'arrêter
Home et Pause réagisse instantanément. Par contre, is pressed n'est pris en compte que lorsque
la fonction est à cette endroit.
La différence entre les 2 pour moi est flagrante...
Si j'effleure "end", le script, bien souvent, ne réagira pas. (fonctionne avec _ispressed)
Par contre, si j'effleure pause (qui fonctionne avec Hotkeyset)
la variable $Pause sera immédiatement changé et le script arrêtera sans que jamais j'aie
à ré-appuyer sur la touche une seconde fois parce que la première fois n'a pas pris.
Code : Tout sélectionner
#include<misc.au3>
HotKeySet("{HOME}","start")
HotKeySet("{PAUSE}","pause")
Global $pause
While 1
Sleep(100)
WEnd
Func start()
$i = 0
While Not _IsPressed(23)
$i+=1
Sleep(500)
ToolTip($i,0,0)
While $pause = 1
Sleep(100)
WEnd
WEnd
EndFunc
Func pause()
$pause = Not $pause
EndFunc
P.s. Un moyen simple pour contourner ce "délai"
Code : Tout sélectionner
#include<misc.au3>
AdlibEnable("presse",50)
While 1
Sleep(1000)
WEnd
Func presse()
If _IsPressed(23) Then
MsgBox(0,"","",1)
EndIf
EndFuncLe Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
plus belle vue du haut de son Pouf = )
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Evenement
Regardez l'exemple donné avec la fonction _WinAPI_SetWindowsHookEx.
Je pense qu'il devrait vous convenir.
Je pense qu'il devrait vous convenir.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".


