[R] Savoir quelle touche est pressée

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Armaldio
Niveau 2
Niveau 2
Messages : 21
Enregistré le : mar. 29 mai 2012 20:15
Status : Hors ligne

[R] Savoir quelle touche est pressée

#1

Message par Armaldio »

Bonjour tout le monde ;)

J'ai une interface graphique comme ceci :

Image

Et je recherche une petite fonction qui me servirait à récupérer la touche pressée, quelle qu'elle soit :)
Voilà :)

PS: J'ai fouillé internet et tout ce que j'ai trouvé, c’est détecter si une touche a été pressée, mais sans renvoyer laquelle :/

Merci d'avance pour votre aide :)

Edit :
► Afficher le texte
Modifié en dernier par Armaldio le jeu. 07 nov. 2013 19:44, modifié 2 fois.
L'art de coder fait-il de nous des artistes ?
Avatar du membre
cbourree
Niveau 5
Niveau 5
Messages : 104
Enregistré le : sam. 05 févr. 2011 18:07
Localisation : Lyon
Status : Hors ligne

Re: [..]Savoir quelle touche est pressée

#2

Message par cbourree »

Par touche, tu entends touche correspondante du clavier ou appui sur le bouton ?
Dans le premier cas je te conseille d'utiliser la fonction HotKeySet

Code : Tout sélectionner

HotKeySet("a","fonctionLancerQuandAppuisurA")
Tu peux aussi aller voir du côté de _IsPressed() (voir la doc)
Amesamana
Niveau 5
Niveau 5
Messages : 108
Enregistré le : dim. 09 sept. 2012 16:37
Status : Hors ligne

Re: [..]Savoir quelle touche est pressée

#3

Message par Amesamana »

Bonjour,

_IsPressed
► Afficher le texte
Armaldio
Niveau 2
Niveau 2
Messages : 21
Enregistré le : mar. 29 mai 2012 20:15
Status : Hors ligne

Re: [..]Savoir quelle touche est pressée

#4

Message par Armaldio »

J'entends "touche correspondante du clavier" ^^

Malheureusement, aussi bien avec _IsPressed qu'avec un HotKey, je devrais définir une condition ou une action pour CHAQUE lettre :/
Moi je voudrais une fonction de ce genre :

Code : Tout sélectionner

While 1
    If _KeyIsPressed($variableDansLaquelleEstRetournéeLaValeur) Then
;Truc A faire
    Endif
WEnd
Voila :)
L'art de coder fait-il de nous des artistes ?
Avatar du membre
cbourree
Niveau 5
Niveau 5
Messages : 104
Enregistré le : sam. 05 févr. 2011 18:07
Localisation : Lyon
Status : Hors ligne

Re: [..]Savoir quelle touche est pressée

#5

Message par cbourree »

Cette fonction n'existe malheureusement pas à ma connaissance, et croie moi : toute fonction fabriquer sera beaucoup plus compliqué que juste mettre un HotKey à chaque fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..]Savoir quelle touche est pressée

#6

Message par mikell »

Armaldio a écrit : je recherche une petite fonction qui me servirait à récupérer la touche pressée, quelle qu'elle soit
Donc tu cherches un keylogger, quoi Image

Mais bon c'est acceptable tant que c'est subordonné à une gui
@cbourree : ça existe, et c'est pas bien compliqué en plus

Code : Tout sélectionner

$gui = GUICreate("test")
GuiSetState()
GUIRegisterMsg(0x0100, "WM_KEYDOWN")

While GuiGetMsg()<>-3
  Sleep(10)
WEnd

Func WM_KEYDOWN($hWnd, $msg, $wParam, $lParam)
    Msgbox(0,"", Chr(BitAND($wParam, 0xFF)) )
EndFunc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Armaldio
Niveau 2
Niveau 2
Messages : 21
Enregistré le : mar. 29 mai 2012 20:15
Status : Hors ligne

Re: [..] Savoir quelle touche est pressée

#7

Message par Armaldio »

Donc tu cherches un keylogger, quoi
Je savais que ce message allait sortir ^^
J'ai déjà vu cela sur plusieurs sites :/
Mon but n'est absolument pas de faire un keylogger, bot, ou je ne sais quoi, je recherche juste a faire un petit utilitaire de configuration de touches, pour les controles d'un jeu vous savez :)
Je cherche aussi, et cela m'amene a modifier un peu ma question,
Si par exemple ma fonction me renvoie "LeftMouseButton", mais que le jeu ne comprends que "leftMouse" Comment doit-je procéder ?
(sachant que chaque touche est paramétrable dans un fichier ini)
mikell a écrit : @cbourree : ça existe, et c'est pas bien compliqué en plus

Code : Tout sélectionner

$gui = GUICreate("test")
GuiSetState()
GUIRegisterMsg(0x0100, "WM_KEYDOWN")

While GuiGetMsg()<>-3
&nbsp; Sleep(10)
WEnd

Func WM_KEYDOWN($hWnd, $msg, $wParam, $lParam)
&nbsp; &nbsp; Msgbox(0,"", Chr(BitAND($wParam, 0xFF)) )
EndFunc
J'ai testé, malheureusement cela me donne des résultats assez surprenants pour les touches commes F1, F2, le pavé numérique et autres ^^

Edit: Je pense que je vais utiliser une boucle ou je ne sais quoi avec un _ispressed pour pouvoir remplacer par le texte que je veut ^^
Mais si vous avez des idées je suis quand meme preneur ;))
L'art de coder fait-il de nous des artistes ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Savoir quelle touche est pressée

#8

Message par mikell »

Bah oui pour capter réellement toutes les touches le code est pas mal plus compliqué
Mais tu n'as pas besoin de ça pour ce que tu veux faire, il suffit d'une petite gui de config avec des inputs (ou des combos) pour entrer le nom des touches à utiliser et après validation de placer ensuite des _IsPressed sur juste ces touches (ou boutons de souris)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Armaldio
Niveau 2
Niveau 2
Messages : 21
Enregistré le : mar. 29 mai 2012 20:15
Status : Hors ligne

Re: [..] Savoir quelle touche est pressée

#9

Message par Armaldio »

:O Je n'avais pas du tout pensé aux combobox ...
C'est une sérieuse piste :/
Bon je met en résolu, vu que j'ai deux solutions à tester :)
J'éditerais le 1er message pour poster la solution que j'ai utilisée (pour que ça serve aux autres ;))
Merci a vous ;D
L'art de coder fait-il de nous des artistes ?
Répondre