Page 1 sur 1

[R] Savoir quelle touche est pressée

Posté : mar. 05 nov. 2013 20:16
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

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

Posté : mar. 05 nov. 2013 20:40
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)

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

Posté : mar. 05 nov. 2013 20:45
par Amesamana
Bonjour,

_IsPressed
► Afficher le texte

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

Posté : mar. 05 nov. 2013 20:51
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 :)

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

Posté : mar. 05 nov. 2013 21:16
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.

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

Posté : mar. 05 nov. 2013 21:41
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

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

Posté : mar. 05 nov. 2013 22:29
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 ;))

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

Posté : mer. 06 nov. 2013 11:45
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)

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

Posté : mer. 06 nov. 2013 19:18
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