Page 1 sur 1
[R] Actionnement d'un bouton par appui de la touche entrer
Posté : sam. 01 nov. 2008 22:17
par Cyrille
Bonsoir,
Je chercher a faire en sorte que lorsqu'on appui sur la touche entrer un bouton précis de la fenêtre soit activé. J'illustre :

lorsque j'ai fini de rentre mon mot de passe je voudrais faire entrer pour valider.
C'est sûrement tout bête comme question mais je sais pas du tout ^^
merci d'avance.
Re: [...] Actionnement d'un bouton par appui de la touche entrer
Posté : dim. 02 nov. 2008 01:56
par Tlem
Il vous faut utiliser la fonction
HotKeySet.
Code : Tout sélectionner
#Include <GuiButton.au3>
HotKeySet("{ENTER}", "Valid")
...
Le Code.
...
Func Valid()
HotKeySet("{ENTER}") ; Pour désactiver le HotKeySet.
_GUICtrlButton_Click($hWnd) ; $hWnd est le handle du bouton.
EndFunc
Re: [...] Actionnement d'un bouton par appui de la touche entrer
Posté : dim. 02 nov. 2008 11:05
par Cyrille
Il me manque l'include GUIButton.au3
J'ai vérifier dans le dossier include de autoit et il n'y ai effectivement pas.
Est ce un problème d'installation ? ou de version ? ou je ne sais quoi -_-
Re: [...] Actionnement d'un bouton par appui de la touche entrer
Posté : dim. 02 nov. 2008 11:13
par jbnh
Re: [...] Actionnement d'un bouton par appui de la touche entrer
Posté : dim. 02 nov. 2008 12:16
par Cyrille
Merci, à priori ça marche, mais mon problème est différent maintenant.
Je sais pas quand désactiver le HotKey.
En fait c'est un peu complexe. Voici une partie de mon code :
► Afficher le texte
Code : Tout sélectionner
#include <mysql.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <GuiButton.au3>
Global $prenom =""
Global $nom =""
Global $identifiant=""
Global $motdepasse
Global $idIsExist
Global $idIsOk
Global $mdpIsOk
Global $i_identifiant, $i_motdepasse, $i_nom, $i_prenom, $Button1, $ButtonOk
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 625, 445, 193, 125)
$nouveau = GUICtrlCreateButton("nouvel utilisateur", 48, 72, 153, 25, 0)
$connection = GUICtrlCreateButton("se connecter", 48, 120, 153, 25, 0)
GUICtrlSetOnEvent($nouveau,"newUser_GUI")
GUICtrlSetOnEvent($connection,"connexionUser_GUI")
GUISetOnEvent($GUI_EVENT_CLOSE,"prog_CLOSE")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
Sleep(10000)
WEnd
Func prog_CLOSE()
Exit
EndFunc
Func connexionUser_GUI()
#Region ### START Koda GUI section ### Form=
$Form3 = GUICreate("Connexion", 243, 137, -1, -1)
GUISetIcon("D:\008.ico")
$i_motdepasse = GUICtrlCreateInput("password", 3, 77, 233, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
$ButtonOk = GUICtrlCreateButton("&OK", 81, 109, 75, 25, 0)
$ButtonCancel = GUICtrlCreateButton("&Annuler", 162, 109, 75, 25, 0)
$Label = GUICtrlCreateLabel("Mot de passe :", 3, 57, 74, 17)
$Label1 = GUICtrlCreateLabel("Identifiant :", 8, 7, 56, 17)
$i_identifiant = GUICtrlCreateInput("Entre ton identifiant", 3, 27, 233, 21)
GUICtrlSetOnEvent($ButtonOk, "connexionUser")
GUICtrlSetOnEvent($ButtonCancel, "CLOSE_GUI")
HotKeySet("{ENTER}", "connexionUser_ENTER")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
EndFunc
Func connexionUser_ENTER()
HotKeySet("{ENTER}") ; Pour désactiver le HotKeySet.
_GUICtrlButton_Click($ButtonOk)
EndFunc
Func connexionUser()
$identifiant= GUICtrlRead($i_identifiant)
$motdepasse= GUICtrlRead($i_motdepasse)
;on va voir si les données sont bonne
$sql = _MySQLConnect("*****","*****","math","***.***.*.**")
$var = _Query($sql,"SELECT * FROM user WHERE id = '"& $identifiant&"'")
With $var
While NOT .EOF
$idIsOk=.Fields("id").value
$mdpIsOk=.Fields("mdp").value
.MoveNext
WEnd
EndWith
If $identifiant = $idIsOk And $motdepasse = $mdpIsOk Then
MsgBox(64, "OK !", "Identifiant et mot de passe correct")
CLOSE_GUI()
ElseIf $identifiant <> $idIsOk Then
MsgBox(48, "Identifiant inexistant", "Cet identifiant est inexistant, recommence.")
ElseIf $motdepasse <> $mdpIsOk Then
MsgBox(48, "Mot de passe incorect", "Entre le bon mot de passe")
EndIf
_MySQLEnd($sql)
EndFunc
Quand on fait entrer on désactive direct le HotKey, mais si le mot de passe est incorrect on doit le retaper, et du coup le HotKey est désactivé et n'a pas été réactivé... Je sais pas où il faut que je le désactive...
Re: [...] Actionnement d'un bouton par appui de la touche entrer
Posté : dim. 02 nov. 2008 12:43
par jbnh
Code : Tout sélectionner
ElseIf $motdepasse <> $mdpIsOk Then
MsgBox(48, "Mot de passe incorect", "Entre le bon mot de passe")
EndIf
Dans cette partie la tu réactive ton hotkeyset non?
Re: [...] Actionnement d'un bouton par appui de la touche entrer
Posté : dim. 02 nov. 2008 16:18
par Cyrille
Oui c'est tout bête >_< mais j'avais pas vu ça comme ça, merci bien

Re: [R] Actionnement d'un bouton par appui de la touche entrer
Posté : dim. 02 nov. 2008 16:38
par jbnh
Fait gaffe de bien le mettre en dessous de la msgbox sinon si il appuie sur enter pour la msgbox ca va faire un beau bug
Re: [R] Actionnement d'un bouton par appui de la touche entrer
Posté : dim. 02 nov. 2008 16:45
par Cyrille
C'est fait ça marche impec ^^
Merci
Re: [R] Actionnement d'un bouton par appui de la touche entrer
Posté : sam. 08 nov. 2008 18:32
par arrkhan
Reponse quelques peu tardive mais ca n'aurait pas ete plus simple de mettre directement sous le bouton un GUICtrlSetState(-1, $GUI_DEFBUTTON) ?
Re: [R] Actionnement d'un bouton par appui de la touche entrer
Posté : lun. 22 déc. 2008 15:39
par AbsoluteZero
Bonjour,
Je sais que ce topic a été résolu mais il y a une chose qui m'intrigue ... Je souhaiterai savoir quelle parti du code a été utilisé pour réalisé la simple box qui est affiché en haut.
Il y a plusieur applet SQL dans le code ... mais n'ayant aucune connaissance en SQL je ne sais pas qu'elles sont les informations que je dois utliser.
Merci pour vos suggestions.
Re: [R] Actionnement d'un bouton par appui de la touche entrer
Posté : lun. 22 déc. 2008 16:47
par Cyrille
Le code pour la fenêtre c'est juste celui là :
Le sql c'est juste en rapport avec mon programme et pas la box.
Code : Tout sélectionner
Func connexionUser_GUI()
#Region ### START Koda GUI section ### Form=
$Form3 = GUICreate("Connexion", 243, 137, -1, -1)
GUISetIcon("D:\008.ico")
$i_motdepasse = GUICtrlCreateInput("password", 3, 77, 233, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
$ButtonOk = GUICtrlCreateButton("&OK", 81, 109, 75, 25, 0)
$ButtonCancel = GUICtrlCreateButton("&Annuler", 162, 109, 75, 25, 0)
$Label = GUICtrlCreateLabel("Mot de passe :", 3, 57, 74, 17)
$Label1 = GUICtrlCreateLabel("Identifiant :", 8, 7, 56, 17)
$i_identifiant = GUICtrlCreateInput("Entre ton identifiant", 3, 27, 233, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
EndFunc
Re: [R] Actionnement d'un bouton par appui de la touche entrer
Posté : lun. 22 déc. 2008 20:34
par TheBlade
Une info qui peut t'aider (Pris du fichier d'aide AutoIt) :
Section GUI Control Styles
Disponible dans <ButtonConstants.au3>
$BS_DEFPUSHBUTTON : 0x0001
Creates a push button with a heavy black border. If the button is in a dialog box, the user can select the button by pressing the ENTER key, even when the button does not have the input focus. This style is useful for enabling the user to quickly select the most likely option, or default.
Donc il te suffit de donner cette constante à ton bouton au moment de sa creation :
GUICtrlCreateButton ( "text", left, top [, width [, height [, $BS_DEFPUSHBUTTON [, exStyle]]]] )
En tout etat de cause, il sera pris en compte a chaque pression de la touche [ENTREE]
Re: [R] Actionnement d'un bouton par appui de la touche entrer
Posté : mar. 23 déc. 2008 10:12
par AbsoluteZero
Je vous remercie de votre aide ... j'étais tout simplement coincé pour faire une fenêtre avec deux champs à remplir.
