J'aimerais savoir comment utiliser l'api GetAsyncKeyState en .net

SvenJashen - 18 oct. 2012 à 12:02
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 19 oct. 2012 à 16:49
Salut , je suis en train de réaliser un keylog , et je voudrais savoir comment je dois utiliser l'API GetAsyncKeyState , et aussi , si possible , si vous pouvez me donner un lien , ou je pourrai savoir les différentes équivalences entre telle ou telle touche et la valeur que me renvoie le getAsyncKeyState , merci

10 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 oct. 2012 à 13:33
Bonjour,
Exactement de la même manière que sous VB6, mais en transposant (les Long de VB6 sont des Integer sous VB.Net).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
en me mettant au vb.net , je n'ai pas commencé à apprendre vb6 , mais le vb.net directement sur le siteduzero , alors , je ne sais comment utiliser cette même API en vb.net , pourrais tu être plus précis stp ?

J'ai déjà déclaré
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Integer

ensuite , j'ai vu en bidouillant sur des sites , qu'il fallait que je fasse une boucle ,
ensuite poser des conditions , voilà le code que j'ai pu copier
 For i As Integer = 32 To 128
            result = 0
            result = GetAsyncKeyState(i)


            If result = -32767 Then
                TextBox1.Text = TextBox1.Text + Chr(i)
            End If
        Next i


Mais , je voudrais comprendre ce code pour pourvoir me debrouiller à mieux gerer les différents évènements moi même , dans le message que tu as écris , c'est pour quelqu'un qui a déjà utilisé getasynckeystate avec vb6 , or moi , je suis vraiment débutant , et ne connais pas grand chose de cette api alors si tu pourrais m'éclairer , cela me ferait énormement plaisir
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 oct. 2012 à 15:51
1) dans quelle fonction as-tu mis ce code ?
2) Quant à ce que retourne GetAsyncKeyState :
C'est soit 0 (si rien)
soit le caractère de code ascii i (si i <> 0), et uniquement, dans ton exemple, pour les caractères dont le code ascii est compris entre 32 et 128 inclus.
3) comment, par quoi et d'où est appelée la fonction (inconnue) objet de mon 1) ???
Voilà (et évite, s'il te plait, les messages privés).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
excuse moi de te deranger , mais je voudrais que tu puisses m'expliquer comment utiliser la fonction getasynckeystate() , après l'avoir déclaré , , enfin de ce que je sais , c'est que la fonction getasynckeystate va me renvoyer un nombre , et selon ce nombre , j'affiche la lettre correspondant. ( de façon théorique , je comprends un peu ) , mais de façon pratique , j'aimerais que tu me donne un exemple de code pour que je puisse comprendre comment faire cela .
ensuite , de ce que je sais aussi , sauf erreur de ma part , chaque nombre renvoyé par la fonction gestasynckeystate correspond à une touche précise du clavier ,sur quel site dois je aller pour savoir que par exemple , si getasynckeystate me renvoie le nombre "10" == > " c"
si getaynsckeystate me renvoie 13 = " e"

si getaynsckeystate me renvoie 15 = " h"


si getaynsckeystate me renvoie 13 = " x"

et enfin lors de l'appel de ma fonction getaynckeystate , quesque je lui envoie en paramètre pour qu'elle me retoune une valeur ?

merci de ton attention.
0

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

Posez votre question
Merci pour ces explications UCFOUTU
j'ai mis un timer dont l'intervalle est 5 ms , et c'est dans ce timer que je verifie la valeur de getasynckeystate

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        For i As Integer = 32 To 128
            result = 0
            result = GetAsyncKeyState(i)


            If result = -32767 Then
                TextBox1.Text = TextBox1.Text + Chr(i)
            End If
        Next 
    End Sub


mais , j'aimerais savoir comment faire pour les touches " entrer " , "supprimer", alt ctrl et autre , car j'ai remarqué que ces touches n'étaient pas prises en compte.
si j'ai bien suivi ton raisonnement , c'est à cause de l'intervalle à partir de laquelle je fais ma boucle , dans quel intervalle alors , je peux recuperer ces touches ?
merci
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 oct. 2012 à 19:15
Déjà : tu ne boucles que de 32 à 128 ! comment espérer intercepter la touche ALT qui, elle, vaut 164 ?

Va voir cette discussion d'aujourd'hui :
Tapez le texte de l'url ici.
ouverte par un jacques13 (vous ne seriez pas, tous les deux, un seul et même forumeur ? ou c'est un hasard ?)

J'espère par ailleurs que tu ne cherches pas ces interceptions pour inhiber CTRL-ALT-DEL, car tu perdrais totalement ton temps (Windows l'interceptera toujours avant toi )


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Merci , non , c'est juste un hazard
rien .....pffff
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 oct. 2012 à 22:02
C'est quoi .. "pffff" ? Une expression de dépit ? De dépit pourquoi? Tu as eu ta réponse, non (que tu n'as peut-être pas comprise, certes ...)
A moins que ce ne soit un autre dépit (ton autre discussion ?).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Ucfoutu , non , c'est pas ce que tu penses , j'avais oublié de supprimé ma signature avant de t'écrire
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 oct. 2012 à 16:49
Gné ?
Bref ...
C'est probablement ce qui t'arrivera lorsque tu installeras (comment, d'ailleurs ?) un programme espion "invisible", indécelable et "non interruptible" en oubliant le détail qui te dénoncera !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous