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

Signaler
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
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
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
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
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.
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
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
Merci , non , c'est juste un hazard
rien .....pffff
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
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
Ucfoutu , non , c'est pas ce que tu penses , j'avais oublié de supprimé ma signature avant de t'écrire
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
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