hibouman
Messages postés13Date d'inscriptiondimanche 1 juin 2003StatutMembreDernière intervention21 juin 2006
-
15 juin 2006 à 17:10
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
16 juin 2006 à 01:15
Bonjour,
J'amerais que lorsque l'on frappe une touche, mon prg le detecte et enregistre le code de cette touche dans un tabelau; j'ai donc ecrit:
do{
key++; if (key 136) key 1;
if ((GetKeyState(key) & 0x8000) == 0x8000)
{
touche[itouche] = key;
itouche++;
}
}while(1!=0);
Ca ne marche pas tres bien car en tapant trop vite le texte, le prg n'enregistre plus les touches.
Donc je voulais savoir s'il y avait un moyen de ne pas incrémenter la variable key car ca me parait foireux.
TheSaib
Messages postés2367Date d'inscriptionmardi 17 avril 2001StatutMembreDernière intervention26 décembre 200723 16 juin 2006 à 00:37
? j'ai du mal a comprendre ce que tu veux faire ??
Pour intercepter les appuies clavier tu peux surcharcher les méthodes WndProc et tester le message (WM_KEYDOWN), ou surcharcher la fonction ProcesMneMonic si tu veux que les chars, ou ProcessCmdKey si tu veux les touches de controles et autres.
Là j'ai l'impression que tu boucles sur les 136 touches et tu tests leur état, c'est super violent comme méthode !
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 16 juin 2006 à 01:11
Si tu fais une sorte de keylogger vaut peut être mieux utiliser GetKeyboardState qui récupère en une fois l'état des touches d'un clavier dans un tableau plutôt que d'appeler 136 fois la méthode GetKeyState, surtout si tu n'as pas supprimé la sécurité du code non managé.
Les boucles infinies ça marche bien aussi avec while( true ).
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 16 juin 2006 à 01:15
Si vraiment tu veux capturer toutes les touches fraudra passer par un vrai hook via les fonctions SetWindowsHookEx, CallNextHookEx et UnhookWindowsHookEx.