Hotkeyset

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Misa10
Niveau 3
Niveau 3
Messages : 38
Enregistré le : sam. 14 avr. 2018 11:50
Status : Hors ligne

Hotkeyset

#1

Message par Misa10 » jeu. 22 nov. 2018 18:46

Bonjour je voulais tester simplement une Hotkeyset et ça marche pas 45min que je cherche d'ou ça viens je m'en remet a vous .

Code : Tout sélectionner

#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 615, 437, 192, 124)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit

HotKeySet("d", "ShowMessage")  


 EndSwitch
WEnd


Func ShowMessage()
    MsgBox($MB_SYSTEMMODAL, "", "Ceci est un message.")
EndFunc   ;==>ShowMessage

alors qu'avec ce code

Code : Tout sélectionner

#include <MsgBoxConstants.au3>


While 1

  Sleep(100)

HotKeySet("d", "ShowMessage")



WEnd


Func ShowMessage()
    MsgBox($MB_SYSTEMMODAL, "", "Ceci est un message.")
EndFunc   ;==>ShowMessage
ça marche niquel . En plus j'avais déja use cette fonction dans un projet avec un GUI et tout mais la j'arrive pas a faire fonctioné je comprends pas où est mon erreur.

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 685
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

Re: Hotkeyset

#2

Message par walkson » ven. 23 nov. 2018 13:13

Bonjour,
Dans le premier cas vous sortez du code puis vous faites un appel à la surveillance d'une touche, normal que cela ne fonctionne pas !
Dans le deuxième vous mettez cette surveillance dans une boucle, ce qui est inutile :wink:
Regardez les exemples à cette adresse https://www.autoitscript.fr/autoit3/doc ... KeySet.htm
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5858
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Hotkeyset

#3

Message par mikell » ven. 23 nov. 2018 13:57

:mrgreen:

  Case $GUI_EVENT_CLOSE
      Exit
      HotKeySet("d", "ShowMessage")  
Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Misa10
Niveau 3
Niveau 3
Messages : 38
Enregistré le : sam. 14 avr. 2018 11:50
Status : Hors ligne

Re: Hotkeyset  

#4

Message par Misa10 » ven. 23 nov. 2018 14:26

C'est bon je viens de trouvé sans vos réponses en faites mais merci quand même . Pour ceux qui tomberont sur mon post .

Faites :

Code : Tout sélectionner

Case "g"
HotKeySet("g","Showmessage")
Il faut ajouter case avec la touche . Si il y'a que hotKeyset tout seul ça marchera pas.

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 685
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

Re: Hotkeyset

#5

Message par walkson » ven. 23 nov. 2018 15:11

Misa10 a écrit :
ven. 23 nov. 2018 14:26
C'est bon je viens de trouvé sans vos réponses en faites mais merci quand même . Pour ceux qui tomberont sur mon post .
Rhôôôôô !!!!! :shock:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
HotKeySet("d", "ShowMessage")
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 615, 437, 192, 124)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
 $nMsg = GUIGetMsg()
 Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit
 EndSwitch
WEnd


Func ShowMessage()
    MsgBox($MB_SYSTEMMODAL, "", "Ceci est un message.")
EndFunc   ;==>ShowMessage
Pour la petite histoire, pourquoi votre code fonctionne:
Case "Ce machin marche aussi !"
HotKeySet("g","Showmessage")
Pourquoi ? Parce que le programme ne peut lire $nMsg = GUIGetMsg() et par conséquence $nMsg = 0 et que HotKeySet("g","Showmessage") est lancé !
$nMsg = GUIGetMsg() correspond à un Id, c'est à dire à un contrôle. Si $nMsg = 0, c'est que aucun contrôle n'a été sélectionné. A titre d'exemple, $GUI_EVENT_CLOSE = -3, c'est toujours un chiffre mais ne peut être une lettre comme votre proposition !!!
et donc Case "g" = 0 jusqu' à preuve du contraire :mrgreen:
On peut écrire du code plein d'erreurs et fonctionner, la preuve ! Mais lire l'aide et les exemples n'est pas inutile :D
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

Répondre