Détecter une frappe au clavier

hibouman Messages postés 13 Date d'inscription dimanche 1 juin 2003 Statut Membre Dernière intervention 21 juin 2006 - 15 juin 2006 à 17:10
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 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.

Merci !

3 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
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 !

::|The S@ib|:: MVP C#.NET
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
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 ).
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
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.
0
Rejoignez-nous