Partage
  • Partager sur Facebook
  • Partager sur Twitter

GetAsyncKeyState

GetAsyncKeyState

Sujet résolu
    10 novembre 2017 à 22:01:54

    Bonsoir,

    J'ai un petit problème que je n'arrive pas à résoudre :waw:

    For i = 1 To 255
                result = 0
                result = GetAsyncKeyState(i)
                If result = -32768 Then
                    RichTextBox1.Text = RichTextBox1.Text + Chr(i)
                End If
            Next i

    En effet j'ai placé ce code dans un timer reglé a 5ms d'intervalle. De plus j'ai bien pensé a déclarer au début de mon code :

    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Short

    J'arrive donc parfaitement a récupérer les lettres que l'utilisateur va taper sur son clavier. En revanche je n'arrive pas a récupérer les chiffres du pavé numérique. Par exemple la touche "5" du pavé numérique est lue comme un "e" par le code.

    Merci d'avance ! :ninja:



    • Partager sur Facebook
    • Partager sur Twitter
      11 novembre 2017 à 12:36:14

      https://www.developpez.net/forums/d1076419/logiciels/microsoft-office/general-vba/probleme-code-touches-clavier/

      Comme expliquez dans le post ci dessus, getasynckeystate ne prends pas un code ascii en parametre mais un "Virtual Key Code" qu'il vous faut ensuite convertir en une touche (et pas une lettre comme vous avez l'air de le croire)...

      Bref regarder la doc du parametre de getasynckeystate!

      Ps: 5ms c'est quand même rapide...

      ps2: les keylogger se font avec les hook.

      -
      Edité par breizhbugs 11 novembre 2017 à 12:38:43

      • Partager sur Facebook
      • Partager sur Twitter
      ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
        11 novembre 2017 à 20:40:05

        Merci pour votre réponse !

        Mais cela veut dire qu'il n'y a aucune fonction déjà existante permettant de transformer ces Keycode en ASCII ? Je suis donc obligé de prévoir chaque cas a la main ...

        PS: 5ms après quelques test ça fonctionne très bien

        PS2: Hook ? :-°

        • Partager sur Facebook
        • Partager sur Twitter
          11 novembre 2017 à 20:58:08

          ChristopheHugueny a écrit:

          Mais cela veut dire qu'il n'y a aucune fonction déjà existante permettant de transformer ces Keycode en ASCII ?

          https://msdn.microsoft.com/en-us/library/ms646316(VS.85).aspx

          ChristopheHugueny a écrit:


          PS2: Hook ? :-°

          Google ? :-°

          • Partager sur Facebook
          • Partager sur Twitter
          ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **

          GetAsyncKeyState

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown