Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Creer un hook dans une dll [ Archives / API ] (zinotron)

dimanche 25 janvier 2004 à 18:02:04 | Creer un hook dans une dll

zinotron

Je n'ai pas tout compris moi ...
j'ai fait une rechercher dans les systeme de creation de hook dans l'API win32, et je compris cela : RIEN.
enfin si j'ai capte deux trois choses, mais pas assez pour aller coder ...
alors, je voudrais faire un hook de thread (donc dans une dll)
j'ai capte les fonction kil fallait utiliser, mais pas comment les foutre dans une dll, ni comment les utiliser dans le prog ...
si qq1 peut m'aider .../
merci
ps: j'ai deja mate les hook de thread dans cppfrance :-)

dimanche 25 janvier 2004 à 20:48:22 | Re : Creer un hook dans une dll

lastpixl

Un hook de thread est un hok qui s'applique uniquement au thread auquel il est attaché.
Donc pas forcément dans une Dll

Les hokk qui sont obligatoirement dansune Dll sont de hook systeme : ils s'appliquent à tout le systeme.

Pour un hook Dll :
Faire un Dll-Loader :

HINSTANCE hinstDLL; // instance de la DLL
hinstDLL = LoadLibrary("HddlProj.dll"); // Chargement de la librairie
if (!hinstDLL) // Erreur lors du chargement de la librairie ?

A ce moment la dll est chargée.

Puis a la suite du if :

{//Gestion erreur } else{
InitHooks = (TInitFunc)GetProcAddress(hinstDLL, "@InitHook$qpv");
}

GetProcAdress est unefonction ed la dll, exportée et qui permet d'initialiser les hooks (Pour les fonction exportées il existe plein de tuts bien faits...)

Et une fois la dll chargée on initialise le hook :

//Dans la dll
HHOOK KeybdHookHandle;
LRESULT CALLBACK KeybdProc(int nCode,WPARAM wParam,LPARAM lParam); //Le prototype
HINSTANCE HInst; // Handle d'intance de la DLL

//Il faut bien sur mettre la valeur du handle de linstance de la dll dans HInst

void _export InitHook(HWND hDest) //_export -> si tu as BCB5
{
KeybdHookHandle = SetWindowsHookEx(WH_KEYBOARD, // Créer un hook sur le clavier
(HOOKPROC)KeybdProc, // Utiliser la fonction KeybdProc
HInst, // Dans la DLL d'instance HInst
0); // Pour tous les threads

}


Apres ya plus qu'à créer une fonction callback pour gerer un hook, clavier ici

LRESULT CALLBACK _export KeybdProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if (nCode < 0) // do not process message
return CallNextHookEx(KeybdHookHandle, nCode,
wParam, lParam);
//Gestion du message


return CallNextHookEx(KeybdHookHandle, nCode,
wParam, lParam);
}

Et rajouter une fonction qui au dé-attachement de la dll qui dé-registre les hooks :

void EndHook()
{
// Supression des hooks
UnhookWindowsHookEx(KeybdHookHandle);

}


Voila...

En esperant avoir clarifié les choses,
Lastpix'l

lundi 26 janvier 2004 à 07:42:11 | Re : Creer un hook dans une dll

zinotron

bon, j'ai plus qua prendre une bonne dose d'acide acetyle-salycilique, un bon café et une clope, ca devrait mieux aller.
merci :-)
A+



Cette discussion est classé dans : creer, dll, thread, hook, capte


Répondre à ce message

Sujets en rapport avec ce message

Thread +CreateDialog [ par Manson ] Bonjour,voila, je dois creer des fenetre a partir d'un thread.Le pb c'est que la fenetre ce cree bien mais onne peut rien faire dedans, car il n'y a p Thread dans une dll [ par angel ] Est-il possible de créer un thread dans une dll ? KOMENT CREER UNE APP WIN 32 SANS LES DLL MFC? [ par retaks666 ] ben jaimerais CREER UNE APP WIN 32 SANS LES DLL MFC mais ke class wizard fonctionne car c'es bien pratique, coment faire? chui ss win xp ac vcpp6.0 1 dll - 2 exe (3 possibilités ;o) ) [ par sena ] Bonjour,voila j'ai construit une dll.Au chargement de cette dll un thread est lancer pour pouvoir effectuer une réception UDP en permanence.Mon pb est Hooks sur Thread [ par larion ] Bonjour,Dans une Dll, j'ai un Hook que j'ai déclaré ainsi :Donnees->HookHandle2 = SetWindowsHookEx(WH_CALLWNDPROCRET,(HOOKPROC)CallWndRetProc,HInst,0) createevent et thread [ par leprov ] salut a tous.dans un ancien post, javais posé une question, on ma dit que je devais créer un thread, fait mon waitforsingleobject dans mon thread, et HOOKING [ par Fuckly94 ] Salut tout le monde,c'était juste pour savoir un truk tout béte!!je veux faire un HOOK sur le niveau SYSTEM!!il me faut donc une DLL <B detection d'un messageBox et fermeture automatique [ par elroulianito ] J'aimerai utiliser une fonction issue d'une dll. Le problème est qu'à l'execution de celle-ci une fenêtre de type messagebox apparait m'invitant à cli Problème de hook clavier [ par Oeil_de_taupe ] Bonjour tout le monde, Je suis en train de créer un programme me permettant d'utiliser qu'un seul clavier sur deux ordinateurs (grâce à une connectio Faire une callback vers un exe dans un callback hook d'une dll [ par Suisse00 ] Salut :) J'ai créer un hook sur le clavier dans une DLL, dans le callback du hook j'aimerais faire un callback vers une fonctoin du fichier exe. J'ar


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,25 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.