begin process at 2012 05 29 09:07:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Hooks sur Thread


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Hooks sur Thread

samedi 18 septembre 2004 à 15:43:58 | Hooks sur Thread

larion

Bonjour,

Dans une Dll, j'ai un Hook que j'ai déclaré ainsi :
Donnees->HookHandle2 = SetWindowsHookEx(WH_CALLWNDPROCRET,(HOOKPROC)CallWndRetProc,HInst,0);
Tout fonctionne bien.

Ce Hook détecte des évènements que sur le bureau.
Dans un esprit d'optimisation, je désire initialiser ce hook que sur le Thread du bureau et non sur tous les threads :
DWORD ThreadId,ProcessId;
ThreadId=GetWindowThreadProcessId(FindWindow(_T("Progman"),NULL),&ProcessId);
Donnees->HookHandle2 = SetWindowsHookEx(WH_CALLWNDPROCRET,(HOOKPROC)CallWndRetProc,0,ThreadId);


Mais ce code n'a pas l'air de fonctionner.
Savez-vous pourquoi ?
samedi 18 septembre 2004 à 16:51:05 | Re : Hooks sur Thread

aardman

Membre Club
Réponse acceptée !
Salut,
Pourquoi tu passes 0 au 3eme param de SetWindowsHookEx lors du 2eme appel ? il faut passer le HINSTANCE de la dll qui contient le hook.
samedi 18 septembre 2004 à 17:24:47 | Re : Hooks sur Thread

larion

J'ai fait les 2 solutions sans succès.

hMod :
Identifies the DLL containing the hook procedure pointed to by the lpfn parameter. The hMod parameter must be set to NULL if the dwThreadId parameter specifies a thread created by the current process and if the hook procedure is within the code associated with the current process.
samedi 18 septembre 2004 à 17:31:54 | Re : Hooks sur Thread

larion

C'est malin. En fait ça marche maintenant. (???)
Tu avais raison, il faut bien mettre le HINSTANCE de la dll en 3eme paramètre. Merçi mille fois.
Désolé.
samedi 18 septembre 2004 à 17:39:45 | Re : Hooks sur Thread

aardman

Membre Club
Réponse acceptée !
Salut,
C'est dit dans le passage que tu as copié/collé de MSDN: si le thread a hooker est dans ton processus, pas besoin de DLL.
Par contre pour tout ce qui est dans un autre processus, que ca soit hook global de tout des thread ou hook d'un seul thread, la DLL est obligatoire (et donc le HINSTANCE).


Cette discussion est classée dans : thread, green, hook, hooks, threadid


Répondre à ce message

Sujets en rapport avec ce message

Capturer l'Id d'une process quant on a son ThreadID [ par illupo ] Salut,je cherche à obtenir l'ID d'un process connaissant l'ID du Thread qui s'y rattache.Sur MSDN ils disent d'utiliser cette fonction :ThreadId = Get Cherche Info Sur les hooks. [ par SladerZ ] Bonjour, Je commence  la programmation en C++. Et je suis tombé sur les Hook pour le clavier. Mais c'est quoi un HOOK ? Lors de mes recherches sur goo Hooks et sockets... [ par morganitos ] Bonjour... Et bien non, ce message ne traite pas sur "comment installer un hook" mais sur un autre problème (qui concerne les hooks quand même). Je v Creer un hook dans une dll [ par 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'a à propos des threads [ par GUERRIER_ABSOLU ] Salut, je voudrais savoir s'i quelqu'un a déjà essayé d'appeler une fonction dans un thread et a remarqué quelque chose d'innatendu. En fait quand j'a Comment récupérer les hundle d'un thread ??? [ par fana13 ] Bonjour a tous, je travail sous C++Alors j'ai créer une nouvelle fenetre, mais je souhaiterai récupérer un hundle bien particulier. Alors je voulais s exemple de thread [ par dambeaufort ] bonjour,Je ne comprend pas trés bien comment creer un thread.Est ce que quelqu'un d'entre vous pourrais me fournir un source qui permettent d'avoir 2 thread et mfc [ par dambeaufort ] svp reponse urgente!!!!!!!!bonjour, je voudrais programmer des thread dans une application mfc mais je n'y arrive pas. pourriez vous me donner un exem thread priorité ? [ par sleeper41 ] Voila je medemandé si la priorité des threads pouvait influencer sur le compoirtement général du système.En fait j ai créer une appli qui lance plusie Comment utiliser SwitchToThread ?? [ par vinvay ] Losque je veux mettre un thread à la fin de la liste d'ordonnancement, il faut que j'utilise la fonction SwitchToThread() à l'intérieur du thread conc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales