Hook sur création de fenêtre du système

Signaler
Messages postés
20
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2004
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour,
voila j'ai ecrit un petit prog avec un dll en prenant appui sur le source de BruNews(que je remercie) qui capture la création d'une fenêtre dans le système.

Mon but final est de capturer la fenêtre "Service de message" autrement dit quand je lance un net send.
Or le hook n'est pas déclenché sur cette fenêtre.

Peux être est ce parce que c'est une boite de dialogue et non une fenêtre ??

Est ce que qqun aurait une idée la dessus .
Merci d'avance

-- R1 --

5 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Quelle technique as-tu employe pour etre sur que la fenetre n'est pas interceptee ?
Fais un fichier log qui enregistre par exemple le titre de chaque fenetre qui se cree, tu verras ainsi si oui ou non est intercepte. Une dialogbox passe egalement dans ce hook.
BruNews, ciao...
Messages postés
20
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2004

J'ai utilisé un fichier de log et rien de plus
J'utilise WH_CBT et toi tu utilise WH_SHELL

Est ce que cela fait uen différence ??

-- R1 --
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Faut utiliser celui qui est approprie au but a atteindre.
Si tu n'as pas l'habitude faut pas hesiter a faire des tests avec differentes versions, rien de tel pour saisir les differences entre chaque hook.
BruNews, ciao...
Messages postés
20
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2004

Je comprend pas ces lignes de code qu'il y a dans tes sources.
Peux tu me les expliquer ?

if(GetClassName((HWND) wParam, buffer, 12) != 7) goto defRet;
if(*((DWORD*) buffer) != 0x72464549) goto defRet;
if(*((DWORD*) (buffer+4)) != 0x656D61) goto defRet; // non "IEFrame"

MErci bcp
-- R1 --
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
C'est le test pour savoir si est une fenetre Internet Explorer.
Vaut un strcmp mais imcomparablement + rapide.
BruNews, ciao...