Page 1 sur 1
[..] Enregister touche clavier
Posté : mer. 01 déc. 2010 09:51
par aikiox
Bonjour,
J'aimerais fais un script qui permet savoir sur quelle touche l'utilisateur a appuie pour ensuite afficher un msgbox.
Cordialement
Romain
Re: [..] Enregister touche clavier
Posté : mer. 01 déc. 2010 10:58
par zeshrek
hummmm.... sujet tendencieux (risque de keyloger)
Je me contenterai donc dans mon exemple de ne donner que le strict minimum pour illustrer le principe, cad de ne scanner que les 26 lettres de l'alphabet, sans distinguer minuscule et majuscules, ni les autres caracteres (chiffres, ponctuation... etc)
Si c'est trop 'border line' les modo ont toute lattitude pour censurer, je n'en serais pas offensé
Code : Tout sélectionner
#cs
ecoute le clavier et renvoie la lettre préssée.
ne détecte que les 26 letttres de l'alphabet (ni les chiffres, ni le pavé, ni les accentué, ni la ponctuation, ni les signes $£*ù...etc
Pour sortir appuyer sur la touche [ESC]
#ce
HotKeySet("{ESC}", "Fin")
While 1
For $i = 65 To 90
If _EcouteTouches($i) Then
MsgBox(0, "Touche pressée", "Vous avez appuyé la touche [ " & Chr($i) & " ]")
EndIf
Next
WEnd
Func _EcouteTouches($touche)
Local $ScanClavier, $EtatScan
$ScanClavier = DllCall("user32", "int", "GetAsyncKeyState", "int", $touche)
If $ScanClavier[0] <> 0 Then
$EtatScan = True
Else
$EtatScan = False
EndIf
Return $EtatScan
EndFunc
Func Fin()
Exit 0
EndFunc
Re: [..] Enregister touche clavier
Posté : mer. 01 déc. 2010 13:12
par legend
Je pense que faire un hotkey pour chaque touche serait moins compliqué.
ps : un hotkey sur "a" desactive la touche "a", donc il ne fais pas de keylogger.
la fonction
_ispressed aussi peut faire cela, mais il faudrais que tu te débrouille pour les boucles

bonne journée
Re: [..] Enregister touche clavier
Posté : mer. 01 déc. 2010 14:15
par bloodwolff
moins compliqué ? sa dépend pour qui et avec 26 hotkeyset le code ne sera pas très propre ... je préfère de loin la méthode proposé
Re: [..] Enregister touche clavier
Posté : mer. 01 déc. 2010 16:54
par zeshrek
j'ai pensé aux hotkey aussi mais... certains sont réservés par windows :
Aide AutoIt a écrit :The following hotkeys cannot be set:
Ctrl+Alt+Delete It is reserved by Windows
F12 It is also reserved by Windows, according to its API.
NumPad's Enter Key Instead, use {Enter} which captures both Enter keys on the keyboard.
Win+B,D,E,F,L,M,R,U; and Win+Shift+M These are built-in Windows shortcuts. Note: Win+B and Win+L might only be reserved on Windows XP and above.
Alt, Ctrl, Shift, Win These are the modifier keys themselves!
Other Any global hotkeys a user has defined using third-party software, any combos of two or more "base keys" such as '{F1}{F2}', and any keys of the form '{LALT}' or '{ALTDOWN}'
Apres, ca dépend de ce qu'il veut faire au final...
Re: [..] Enregister touche clavier
Posté : mer. 01 déc. 2010 18:40
par legend
Bof, j'ai deja fait un keylogger juste pour le tester sur mon pc en utilisant hotkey.
sa fonctionnait presque parfaitement, sauf qu'il fallait ajouter du code pour régler le bug d'appui trés rapide sur les touches, ou plusieurs touches en même temp.
mais bon, plusieurs hotkeys dans un seul script ne bug pas.
et pour les touches réservées pour windows, j'ai le moyen de les faire marcher avec hotkey

par exemple ,Ctrl+Alt+Delete, tu fais un petit hotkey pour Ctrl.
tu introduit un petit
_ispressed a la fonction du hotkey Ctrl.
Pour moin compliqué je parlais pas de la longueur du code, mais de son niveau (plus facile a apprendre.)
bonne journée a vous.
Re: [..] Enregister touche clavier
Posté : mer. 01 déc. 2010 21:47
par sylvanie
Moi, personnellement je vois un keylogger en puissance. point barre