hilairenicolas
Messages postés398Date d'inscriptionjeudi 30 octobre 2003StatutMembreDernière intervention15 juin 2007
-
17 déc. 2003 à 15:56
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
6 juin 2005 à 15:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 juin 2005 à 15:39
Un edit, faut le sous classer.
cs_NeoUmbrella
Messages postés104Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention11 septembre 2008 6 juin 2005 à 15:20
Oki, merci pour ces précisions et pour cette source, elle montre aussi comment se servir d'une dll, ce que je ne savais pas faire :)
Si par exemple je veux interdir cette touche F11 seulement dans une editbox d'internet explorer et que j'ai l'handle de celle-ci, me suffit-il d'ajouter ce code a ta dll :
MSG *lpmsg;
lpmsg = (MSG*) lParam;
Et de tester l'handle que me renvoit lpmsg->hWnd avec celui de l'editbox ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 juin 2005 à 15:05
Prendre par habitude qu'un hook global devrait toujours se mettre dans une dll.
cs_NeoUmbrella
Messages postés104Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention11 septembre 2008 6 juin 2005 à 14:54
Oki, et pour un hook de messages, style WM_PAINT, sur une autre application, doit on passer par une dll ou peut on le faire depuis l'exe lanceur ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 juin 2005 à 14:41
GetModuleFileName met "IEXPLORE" dans szbuff car la dll est mappée dans processus IE (et chaque autre) par l'appel de SetWindowsHookEx.
On peut hooker le clavier depuis l'exe lanceur du hook mais faudra alors déterminer qui recevait les touches, me semble plus productif ainsi.
cs_NeoUmbrella
Messages postés104Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention11 septembre 2008 6 juin 2005 à 14:22
Salut, peut on faire la meme chose sans passer par une dll, ou est-ce obligé ?
hilairenicolas
Messages postés398Date d'inscriptionjeudi 30 octobre 2003StatutMembreDernière intervention15 juin 20072 17 déc. 2003 à 16:49
Sauf que je ne comprend toujours pas
la fonction VerifieModule() est appelée au chargement de la dll, et le c+1 pointe sur le szbuff positionné par GetModuleFileName() qui doit retourner le nom du testeur
2 questions en une :
pourquoi retourne-t-il IEXPLORE au chargement de la dll ?
Merci
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 déc. 2003 à 16:05
hilairenicolas
Messages postés398Date d'inscriptionjeudi 30 octobre 2003StatutMembreDernière intervention15 juin 20072 17 déc. 2003 à 15:56
Merci pour ce code instructif, mais je n'arrive pas à determiner comment tu fais pour hooker seulement sur IE. Dans ta fonction VerifIeModule(), pourquoi l'API GetModuleFileName() renvoie "IEXPLORE" et pas le nom du programme de test ?
6 juin 2005 à 15:39
6 juin 2005 à 15:20
Si par exemple je veux interdir cette touche F11 seulement dans une editbox d'internet explorer et que j'ai l'handle de celle-ci, me suffit-il d'ajouter ce code a ta dll :
MSG *lpmsg;
lpmsg = (MSG*) lParam;
Et de tester l'handle que me renvoit lpmsg->hWnd avec celui de l'editbox ?
6 juin 2005 à 15:05
6 juin 2005 à 14:54
6 juin 2005 à 14:41
On peut hooker le clavier depuis l'exe lanceur du hook mais faudra alors déterminer qui recevait les touches, me semble plus productif ainsi.
6 juin 2005 à 14:22
17 déc. 2003 à 16:49
la fonction VerifieModule() est appelée au chargement de la dll, et le c+1 pointe sur le szbuff positionné par GetModuleFileName() qui doit retourner le nom du testeur
2 questions en une :
pourquoi retourne-t-il IEXPLORE au chargement de la dll ?
Merci
17 déc. 2003 à 16:05
{
char szbuff[264], *c;
c = szbuff + GetModuleFileName(0, szbuff, 264);
while(*c != '\') c--;
if(stricmp(c+1, "IEXPLORE.EXE") 0) baction 1;
}
je ne compare pas sur szbuff mais sur c+1 !!!
17 déc. 2003 à 15:56