[R] Dummy ? Ou GuiSetAccelerator ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

[R] Dummy ? Ou GuiSetAccelerator ?

#1

Message par Ks10 »

Bonsoir tous le monde !

Je fait appel à vous car je suis confronter à un petit soucis :

Je cherche à faire en sorte qu'en appuyant sur la touche "ENTRER" que mon programme lit le contrôle et en fonction de ce qu'il y a à l'intérieur il agit.

Donc voici ce que j'ai trouver :
► Afficher le texte

Si j'utilise cette structure, OK aucun soucis cela fonctionne mais j'aimerais approfondir un peu les choses & faire en sorte que dans la partie :

Code : Tout sélectionner

    Case $Input1
           ; ICI le code qui correspond a la commande entrée 
           ; EXEMPLE 
           ; If $input1 = "test" Then msgbox(64, "infos", "test")
Si je rentre une nouvelle donnée cela agit encore en fonction de ce qu'il y à l'intérieur.

J'ai essayer donc de faire appel à un autre GuiSetAccelerator($Renter) dans cette partie mais cela ne fonctionne pas.
J'ai penser également a la commande GuiCtrlSendToDummy mais j'avoue que je ne comprend pas son fonctionnement.

Pouvez-vous m'éclairer ?

Merci d'avance.
Modifié en dernier par Ks10 le ven. 01 août 2014 13:22, modifié 2 fois.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#2

Message par jchd »

Un simple Return devrait suffire, non ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#3

Message par orax »

GUISetAccelerators() attend une touche dans le même format que HotKeySet(). Donc c'est {ENTER} avec { }.
Et c'est GUICtrlRead() pour lire le contenu.
► Afficher le texte
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#4

Message par Ks10 »

Ta solution fonctionne mais cela ne correspond pas a ce que je recherche.
J'ai peut être mal formuler x)

En faîte :

- Oui je veux que la touche entrée fonctionne et qu'il lit l'input.
Cependant voila le cas de figure que j'aimerais faire fonctionné :

Version fonctionnel :
► Afficher le texte
Si a la suite de "If GUICtrlRead($input1) = "test" Then msgbox(64, "infos", "test")" je rajoute un autre :

If GUICtrlRead($input1) = "secondtest" Then msgbox(64, "infos", "test")

Cela va fonctionné mais si je fait comme sa :
► Afficher le texte
Dans cette situation la touche entrée n'est plus fonctionnel, que faut-il rajouter dans ce cas de figure ?
En gros je cherche à l'aide d'une première commande appelé une fonction qui lui attend d'autre paramètre et il ira lire l'input encore une fois pour recevoir ces paramètres. C'est possible ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#5

Message par mikell »

"Une fonction qui attend" ça veut dire une boucle
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#6

Message par jchd »

Franchement, je n'ai rien contre le code "nouille" (si, en fait !), mais je préfère une autre approche. Dès qu'on dépend d'états, autant le voir clairement dans le code.
► Afficher le texte
Evidemment les valeurs d'état 0, 1, ... devraient $etre une énumération de constantes avec des noms explicites.
Modifié en dernier par TommyDDR le ven. 01 août 2014 11:19, modifié 1 fois.
Raison : Parcequ'il faut une balise code :)
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#7

Message par jchd »

Edité, car il m'avait mis une balise

Code : Tout sélectionner

 tout seul
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#8

Message par mikell »

jc ton code marche pas: "abc"+enter puis "test1"+enter => pas de msgbox (par exemple)

Faut ou bien mettre l'accélérateur, ou bien mettre la valeur d'état dans le If...Then
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#9

Message par jchd »

Aucun problème, c'est une simple question de choix de la logique du traitement. Je n'ai pas cherché à coller à quoi que ce soit puisqu'il n'y a aucune véritable spécification. Tu mets un While si tu veux, ou le changement d'état à l'intérieur du If, etc.

Ce que je voulais dire c'est qu'il est préférable que la structure du code reflète la structure d'une machine à états explicite. Sinon en pratique, dès que le contexte devient un poil plus complexe, on se trouve parfois complètement bloqué dans une succession de boucles dont on ne peut sortir aisément.

Par exemple si tu as trois états principaux A, B et C et si chacun a plusieurs sous-états comme a1, a2 et a3, b1 et b2 et c1 et c2, pendant le traitement (par Switch sur 2 niveaux) du cas a3 tu peux toujours modifier les valeurs d'états de l'ensemble, alors que si tu traites tout ça sans variables d'état, tu n'a qu'un recours : Goto.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#10

Message par mikell »

Entièrement d'accord sur la pertinence de la structure du code, ta méthode est clairement mieux adaptée et moins lourdasse
jchd a écrit :Tu mets un While si tu veux, ou le changement d'état à l'intérieur du If, etc.
Présentement, si le changement d'état n'est pas mis dans le If, la variable est commutée même si la chaîne à tester ne match pas, ce qui impose avant le test d'entrer la bonne chaîne du 1er coup sous peine de devoir relancer tout le script - ça peut effectivement être un choix de traitement mais ce n'est pas spécialement ergonomique
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#11

Message par jchd »

Tout dépend du contexte. Si c'est (exemple idiot) in login/mot de passe c'est en général ainsi qu'on procède, mais en remettant les inputs à vide. On peut aussi vouloir stocker les valeurs entrées ou faire ceci ou cela. C'est juste un squelette à adapter au contexte réel.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Dummy ? Ou GuiSetAccelerator ?

#12

Message par Ks10 »

Merci à tous pour vos réponses :)

La solution de Mikell me correspond parfaitement !
Sujet résolu.
Répondre