Hook clavier avec dll

Le
Pascal Rito
Bonsoir tout le monde.

J'ai un petit soucis avec la mise en place d'un hook. J'ai déjà posté
récemment un message pour la mise en place d'un hook windows sans dll.
Ce fut au final un succès.
Cependant, aujourd'hui je me suis renseigné sur la mise en place d'un
hook AVEC dll et je bloque lamentablement.

Dans ma dll, j'ai deux fonctions exportées : 'int PlacerHook()' et
'int EnleverHook()' qui me retournaient à la base 0 si elles ont
échoué, ou 1 en cas de réussite.
Dans mon utilitaire, je charge la dll grâce à LoadLibrary et lorsque
j'utilise la fonction PlacerHook, j'ai 0 en retour J'ai alors
utilisé GetLastError et je me suis retrouvé avec une erreur 1428 qui
stipule "1428 Cannot set nonlocal hook without a module handle.
ERROR_HOOK_NEEDS_HMOD" et je ne comprends pas pourquoi car j'ain bien
renseigné l'HINSTANCE de la dll

C'est pourquoi je viens quérir votre aide pour savoir où mon code
bloque

Code de ma dll : http://pastebin.com/mf3c3e7b
Code de mon utilitaire : http://pastebin.com/m4215d2b0

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christian ASTOR
Le #20845791
On 28 déc, 02:37, Pascal Rito
Dans ma dll, j'ai deux fonctions exportées : 'int PlacerHook()' et
'int EnleverHook()' qui me retournaient à la base 0 si elles ont
échoué, ou 1 en cas de réussite.
Dans mon utilitaire, je charge la dll grâce à LoadLibrary et lorsque
j'utilise la fonction PlacerHook, j'ai 0 en retour... J'ai alors
utilisé GetLastError et je me suis retrouvé avec une erreur 1428 qui
stipule "1428 Cannot set nonlocal hook without a module handle.
ERROR_HOOK_NEEDS_HMOD" et je ne comprends pas pourquoi car j'ain bien
renseigné l'HINSTANCE de la dll...



Ca passe avec VS 2003, en ajoutant un .def, mais il faut utiliser une
appli GUI pour l'appel et un "shared data segment" pour le HHOOK dans
la DLL
Voir l'exemple de Microsoft Hooks32.exe (exemple de test pour la
plupart des hooks avec DLL)
Publicité
Poster une réponse
Anonyme