Hook

Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 - 20 août 2003 à 02:34
cs_MURDERER Messages postés 8 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 1 avril 2004 - 1 avril 2004 à 12:26
Salut tt le monde,
j'ai juste une petite question :
lorsqu'on crée un hook, on intercepte les message, mais ya-t-il un moyen de les bloqué totalement ?

Je m'explique, mon hook permet de faire ce que j'ai envie mais ensuite, il fait aussi la facon "normale" je crois, par exemple, j'ai posé un hook sur la touche tab, si j'appui sur cette touche, ca fait bien le code spéciale mais ca me fait quand meme une tabulation dans l'éditbox après ! Y a t-il un moyen de ne pas la mettre ?

7 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
20 août 2003 à 03:09
Salut,
En temp normal ta fonction hook qui traite le message TAB retourne CallNextHookEx(...) ce qui a pour but de faire suivre le message aux autres hooks (ou a la fenetre destinatrice lorsqu'il n'y a plus de hook). Si ta fonction retourne 1, tu empeche de faire suivre le message et donc la fenetre destinatrice ne recevra jamais le message TAB.
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
20 août 2003 à 03:22
J'y é déja pensé é j'ai déja mis un return 1; a la fin, mais ca ne change rien, je comprend pas moi meme pourquoi...

voici le code du hook:
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
MSG *lpmsg;
lpmsg = (MSG*) lParam;
if(nCode < 0) goto defRet;

// Hook sur la touche Tab if(lpmsg->message WM_KEYDOWN && lpmsg->wParam VK_TAB)
{
...
return 1;
}
defRet:
return (CallNextHookEx(hhk, nCode, wParam, lParam));
}
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
20 août 2003 à 03:40
Désolé alors, je pensais que cela fonctionnais pour tout les hooks.
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
20 août 2003 à 03:43
pas grave, merci kan meme ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
testtestiop Messages postés 16 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 14 mars 2008
15 déc. 2003 à 07:18
bonjour,

bah moi j'ai fais un hook sur la touche alt avec un dll et en utilisant la structure KBDLLHOOKSTRUCT et ca marche tres bien, ca interdit bien la touche tab avec un return 1 au lieu d'un calnexthook()

jte colle ma fonction de callback

LRESULT CALLBACK func_keyb_hook(int nCode, WORD wParam, DWORD lParam )
{
  KBDLLHOOKSTRUCT * pkh = (KBDLLHOOKSTRUCT *) lParam;

  if (nCode==HC_ACTION)
  {
    if (pkh->vkCode=VK_TAB))
    { 
      return 1;
    }
  }
  return CallNextHookEx(NULL, nCode, wParam, lParam);
}


en esperant que ca marche chez toi et que tu me dises ce que ca donne chez toi en reponse a ce post

juju
0
testtestiop Messages postés 16 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 14 mars 2008
15 déc. 2003 à 07:18
oups c pas la touche alt mai tab pardon

juju
0
cs_MURDERER Messages postés 8 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 1 avril 2004
1 avril 2004 à 12:26
salut, bon, alors je sais pas quel type de hook tu as mis, mais pour un keylogguer, ca devrai etre WM_KEYBOARD.
Essai avec un hook WM_GETMESSAGE.

Apres, voici une foncction qui marche :

LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if((*(MSG *)lParam).message == WM_KEYDOWN){
// A enlever pour que ca bloque toutes les touches
if((*MSG *)lParam).lParam == VK_TAB){
(*(MSG *)lParam).message = WM_NULL;
}
}
return CallNextHookEx(hkk, nCode, wParam, lParam);
}

Pour moi, ca mache, avec toutes les touches du clavier sous dev-C++ ...
Tu peux aussi utiliser la verification avec le message WM_CHAR a la place de WM8KEYDOWN ...
0
Rejoignez-nous