[..] Enregister touche clavier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Verrouillé
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

[..] Enregister touche clavier

#1

Message 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
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Enregister touche clavier

#2

Message 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
 
Si vis pacem para bellum
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Enregister touche clavier

#3

Message 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
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] Enregister touche clavier

#4

Message 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é
Compte skype : bloodwolfff
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Enregister touche clavier

#5

Message 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...
Si vis pacem para bellum
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Enregister touche clavier

#6

Message 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.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Enregister touche clavier

#7

Message par sylvanie »

Moi, personnellement je vois un keylogger en puissance. point barre
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Verrouillé