Accueil > Forum > > > > Communications exe / dll
Communications exe / dll
mardi 1 juillet 2003 à 15:19:26 |
Communications exe / dll

Nebula
|
Re-bonjour ... J'utilise ce code dans une dll : #define WIN32_LEAN_AND_MEAN
#include <windows.h>
HWND hApp = NULL;
LRESULT CALLBACK CBTProc(INT nCode, WPARAM wParam, LPARAM lParam) { if (nCode == HCBT_CREATEWND) { if (hApp != NULL) PostMessage(hApp, WM_USER+1, 0, 0); return 1; } return 0; }
VOID WINAPI SetAppWnd(HWND hWnd) { hApp = hWnd; }
BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { return TRUE; }
|
Le but est le suivant : l'application met en place un hook global, destiné à intercepter les appels à CreateWindow et CreateWindowEx ... L'enjeu étant la création d'un antipopup pour Internet Explorer, efficace et surtout gratuit... Mais lorsque dans mon programme, j'appelle (dynamiquement) la procédure SetAppWnd comme suit (dans le WM_CREATE de la WndProc de ma fenetre): typedef VOID WINAPI (*SETAPPWND)(HWND);
SETAPPWND SetAppWnd = (SETAPPWND) GetProcAddress(hLib, "SetAppWnd@4"); // hLib étant l'instance de la dll chargée précedemment avec LoadLibrary
SetAppWnd(wndMain); // wndMain étant le HWND de ma fenetre principale
|
hApp dans la dll vaut toujours NULL, et la dll ne notifie donc pas le programme qu'elle vient de tuer une fenetre... De plus je comptais communiquer le HHOOK mis en place par le programme à la dll afin de pouvoir appeler CallNextHookEx de manière correcte, mais j'ai le même problème... Je tiens mes sources à disposition, si vous voulez tester, écrivez-moi un message :) Merci d'avance !
|
|
mardi 1 juillet 2003 à 15:26:30 |
Re : Communications exe / dll

BruNews
|
je ne comprends pas ton prob avec CallNextHookEx. Fais toi creer le hook par la dll et tu n'auras pas a le communiquer. Une simple fonction InitMonHook() et une pour le fermer exportees par la dll devraient suffire. BruNews, ciao... ------------------------------- Réponse au message : ------------------------------- > Re-bonjour ... > > J'utilise ce code dans une dll : > > > #define WIN32_LEAN_AND_MEAN > > #include <windows.h> > > HWND hApp = NULL; > > LRESULT CALLBACK CBTProc(INT nCode, WPARAM wParam, LPARAM lParam) { > if (nCode == HCBT_CREATEWND) { > if (hApp != NULL) PostMessage(hApp, WM_USER+1, 0, 0); > return 1; > } > return 0; > } > > VOID WINAPI SetAppWnd(HWND hWnd) { > hApp = hWnd; > } > > BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { > return TRUE; > } > |
> > Le but est le suivant : l'application met en place un hook global, destiné à intercepter les appels à CreateWindow et CreateWindowEx ... L'enjeu étant la création d'un antipopup pour Internet Explorer, efficace et surtout gratuit... > > Mais lorsque dans mon programme, j'appelle (dynamiquement) la procédure SetAppWnd comme suit (dans le WM_CREATE de la WndProc de ma fenetre): > > > typedef VOID WINAPI (*SETAPPWND)(HWND); > > SETAPPWND SetAppWnd = (SETAPPWND) GetProcAddress(hLib, "SetAppWnd@4"); // hLib étant l'instance de la dll chargée précedemment avec LoadLibrary > > SetAppWnd(wndMain); // wndMain étant le HWND de ma fenetre principale > |
> > hApp dans la dll vaut toujours NULL, et la dll ne notifie donc pas le programme qu'elle vient de tuer une fenetre... > > De plus je comptais communiquer le HHOOK mis en place par le programme à la dll afin de pouvoir appeler CallNextHookEx de manière correcte, mais j'ai le même problème... > > Je tiens mes sources à disposition, si vous voulez tester, écrivez-moi un message :) > > Merci d'avance !
|
|
mardi 1 juillet 2003 à 15:56:03 |
Re : Communications exe / dll

Nebula
|
Pour le hook, ok, mais pour mon passage de paramètres ? :s ------------------------------- Réponse au message : ------------------------------- > je ne comprends pas ton prob avec CallNextHookEx. > Fais toi creer le hook par la dll et tu n'auras pas a le communiquer. Une simple fonction InitMonHook() et une pour le fermer exportees par la dll devraient suffire. > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Re-bonjour ... > > > > J'utilise ce code dans une dll : > > > > > > #define WIN32_LEAN_AND_MEAN > > > > #include <windows.h> > > > > HWND hApp = NULL; > > > > LRESULT CALLBACK CBTProc(INT nCode, WPARAM wParam, LPARAM lParam) { > > if (nCode == HCBT_CREATEWND) { > > if (hApp != NULL) PostMessage(hApp, WM_USER+1, 0, 0); > > return 1; > > } > > return 0; > > } > > > > VOID WINAPI SetAppWnd(HWND hWnd) { > > hApp = hWnd; > > } > > > > BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { > > return TRUE; > > } > > |
> > > > Le but est le suivant : l'application met en place un hook global, destiné à intercepter les appels à CreateWindow et CreateWindowEx ... L'enjeu étant la création d'un antipopup pour Internet Explorer, efficace et surtout gratuit... > > > > Mais lorsque dans mon programme, j'appelle (dynamiquement) la procédure SetAppWnd comme suit (dans le WM_CREATE de la WndProc de ma fenetre): > > > > > > typedef VOID WINAPI (*SETAPPWND)(HWND); > > > > SETAPPWND SetAppWnd = (SETAPPWND) GetProcAddress(hLib, "SetAppWnd@4"); // hLib étant l'instance de la dll chargée précedemment avec LoadLibrary > > > > SetAppWnd(wndMain); // wndMain étant le HWND de ma fenetre principale > > |
> > > > hApp dans la dll vaut toujours NULL, et la dll ne notifie donc pas le programme qu'elle vient de tuer une fenetre... > > > > De plus je comptais communiquer le HHOOK mis en place par le programme à la dll afin de pouvoir appeler CallNextHookEx de manière correcte, mais j'ai le même problème... > > > > Je tiens mes sources à disposition, si vous voulez tester, écrivez-moi un message :) > > > > Merci d'avance ! >
|
|
mardi 1 juillet 2003 à 16:00:57 |
Re : Communications exe / dll

BruNews
|
faudrait voir ce que tu dois avoir comme communication entre dll et exe. BruNews, ciao... ------------------------------- Réponse au message : ------------------------------- > Pour le hook, ok, mais pour mon passage de paramètres ? :s > > > > ------------------------------- > Réponse au message : > ------------------------------- > > > je ne comprends pas ton prob avec CallNextHookEx. > > Fais toi creer le hook par la dll et tu n'auras pas a le communiquer. Une simple fonction InitMonHook() et une pour le fermer exportees par la dll devraient suffire. > > BruNews, ciao... > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Re-bonjour ... > > > > > > J'utilise ce code dans une dll : > > > > > > > > > #define WIN32_LEAN_AND_MEAN > > > > > > #include <windows.h> > > > > > > HWND hApp = NULL; > > > > > > LRESULT CALLBACK CBTProc(INT nCode, WPARAM wParam, LPARAM lParam) { > > > if (nCode == HCBT_CREATEWND) { > > > if (hApp != NULL) PostMessage(hApp, WM_USER+1, 0, 0); > > > return 1; > > > } > > > return 0; > > > } > > > > > > VOID WINAPI SetAppWnd(HWND hWnd) { > > > hApp = hWnd; > > > } > > > > > > BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { > > > return TRUE; > > > } > > > |
> > > > > > Le but est le suivant : l'application met en place un hook global, destiné à intercepter les appels à CreateWindow et CreateWindowEx ... L'enjeu étant la création d'un antipopup pour Internet Explorer, efficace et surtout gratuit... > > > > > > Mais lorsque dans mon programme, j'appelle (dynamiquement) la procédure SetAppWnd comme suit (dans le WM_CREATE de la WndProc de ma fenetre): > > > > > > > > > typedef VOID WINAPI (*SETAPPWND)(HWND); > > > > > > SETAPPWND SetAppWnd = (SETAPPWND) GetProcAddress(hLib, "SetAppWnd@4"); // hLib étant l'instance de la dll chargée précedemment avec LoadLibrary > > > > > > SetAppWnd(wndMain); // wndMain étant le HWND de ma fenetre principale > > > |
> > > > > > hApp dans la dll vaut toujours NULL, et la dll ne notifie donc pas le programme qu'elle vient de tuer une fenetre... > > > > > > De plus je comptais communiquer le HHOOK mis en place par le programme à la dll afin de pouvoir appeler CallNextHookEx de manière correcte, mais j'ai le même problème... > > > > > > Je tiens mes sources à disposition, si vous voulez tester, écrivez-moi un message :) > > > > > > Merci d'avance ! > > >
|
|
mardi 1 juillet 2003 à 16:11:27 |
Re : Communications exe / dll

Nebula
|
------------------------------- Réponse au message : ------------------------------- > faudrait voir ce que tu dois avoir comme communication entre dll et exe. > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Pour le hook, ok, mais pour mon passage de paramètres ? :s > > > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > je ne comprends pas ton prob avec CallNextHookEx. > > > Fais toi creer le hook par la dll et tu n'auras pas a le communiquer. Une simple fonction InitMonHook() et une pour le fermer exportees par la dll devraient suffire. > > > BruNews, ciao... > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > Re-bonjour ... > > > > > > > > J'utilise ce code dans une dll : > > > > > > > > > > > > #define WIN32_LEAN_AND_MEAN > > > > > > > > #include <windows.h> > > > > > > > > HWND hApp = NULL; > > > > > > > > LRESULT CALLBACK CBTProc(INT nCode, WPARAM wParam, LPARAM lParam) { > > > > if (nCode == HCBT_CREATEWND) { > > > > if (hApp != NULL) PostMessage(hApp, WM_USER+1, 0, 0); > > > > return 1; > > > > } > > > > return 0; > > > > } > > > > > > > > VOID WINAPI SetAppWnd(HWND hWnd) { > > > > hApp = hWnd; > > > > } > > > > > > > > BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { > > > > return TRUE; > > > > } > > > > |
> > > > > > > > Le but est le suivant : l'application met en place un hook global, destiné à intercepter les appels à CreateWindow et CreateWindowEx ... L'enjeu étant la création d'un antipopup pour Internet Explorer, efficace et surtout gratuit... > > > > > > > > Mais lorsque dans mon programme, j'appelle (dynamiquement) la procédure SetAppWnd comme suit (dans le WM_CREATE de la WndProc de ma fenetre): > > > > > > > > > > > > typedef VOID WINAPI (*SETAPPWND)(HWND); > > > > > > > > SETAPPWND SetAppWnd = (SETAPPWND) GetProcAddress(hLib, "SetAppWnd@4"); // hLib étant l'instance de la dll chargée précedemment avec LoadLibrary > > > > > > > > SetAppWnd(wndMain); // wndMain étant le HWND de ma fenetre principale > > > > |
> > > > > > > > hApp dans la dll vaut toujours NULL, et la dll ne notifie donc pas le programme qu'elle vient de tuer une fenetre... > > > > > > > > De plus je comptais communiquer le HHOOK mis en place par le programme à la dll afin de pouvoir appeler CallNextHookEx de manière correcte, mais j'ai le même problème... > > > > > > > > Je tiens mes sources à disposition, si vous voulez tester, écrivez-moi un message :) > > > > > > > > Merci d'avance ! > > > > > >
|
|
mardi 1 juillet 2003 à 16:12:55 |
Re : Communications exe / dll

Nebula
|
Je voudrais juste que la dll envoie un message à la fenetre principale de l'exe, mais çà merde un poil... Tu veux jeter un oeil sur les sources ? ------------------------------- Réponse au message : ------------------------------- > > > > > ------------------------------- > Réponse au message : > ------------------------------- > > > faudrait voir ce que tu dois avoir comme communication entre dll et exe. > > BruNews, ciao... > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Pour le hook, ok, mais pour mon passage de paramètres ? :s > > > > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > je ne comprends pas ton prob avec CallNextHookEx. > > > > Fais toi creer le hook par la dll et tu n'auras pas a le communiquer. Une simple fonction InitMonHook() et une pour le fermer exportees par la dll devraient suffire. > > > > BruNews, ciao... > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > ------------------------------- > > > > > > > > > Re-bonjour ... > > > > > > > > > > J'utilise ce code dans une dll : > > > > > > > > > > > > > > > #define WIN32_LEAN_AND_MEAN > > > > > > > > > > #include <windows.h> > > > > > > > > > > HWND hApp = NULL; > > > > > > > > > > LRESULT CALLBACK CBTProc(INT nCode, WPARAM wParam, LPARAM lParam) { > > > > > if (nCode == HCBT_CREATEWND) { > > > > > if (hApp != NULL) PostMessage(hApp, WM_USER+1, 0, 0); > > > > > return 1; > > > > > } > > > > > return 0; > > > > > } > > > > > > > > > > VOID WINAPI SetAppWnd(HWND hWnd) { > > > > > hApp = hWnd; > > > > > } > > > > > > > > > > BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { > > > > > return TRUE; > > > > > } > > > > > |
> > > > > > > > > > Le but est le suivant : l'application met en place un hook global, destiné à intercepter les appels à CreateWindow et CreateWindowEx ... L'enjeu étant la création d'un antipopup pour Internet Explorer, efficace et surtout gratuit... > > > > > > > > > > Mais lorsque dans mon programme, j'appelle (dynamiquement) la procédure SetAppWnd comme suit (dans le WM_CREATE de la WndProc de ma fenetre): > > > > > > > > > > > > > > > typedef VOID WINAPI (*SETAPPWND)(HWND); > > > > > > > > > > SETAPPWND SetAppWnd = (SETAPPWND) GetProcAddress(hLib, "SetAppWnd@4"); // hLib étant l'instance de la dll chargée précedemment avec LoadLibrary > > > > > > > > > > SetAppWnd(wndMain); // wndMain étant le HWND de ma fenetre principale > > > > > |
> > > > > > > > > > hApp dans la dll vaut toujours NULL, et la dll ne notifie donc pas le programme qu'elle vient de tuer une fenetre... > > > > > > > > > > De plus je comptais communiquer le HHOOK mis en place par le programme à la dll afin de pouvoir appeler CallNextHookEx de manière correcte, mais j'ai le même problème... > > > > > > > > > > Je tiens mes sources à disposition, si vous voulez tester, écrivez-moi un message :) > > > > > > > > > > Merci d'avance ! > > > > > > > > > >
|
|
mardi 1 juillet 2003 à 16:23:27 |
Re : Communications exe / dll

BruNews
|
PostMessage() ne va pas ? BruNews, ciao... ------------------------------- Réponse au message : ------------------------------- > Je voudrais juste que la dll envoie un message à la fenetre principale de l'exe, mais çà merde un poil... Tu veux jeter un oeil sur les sources ? > > ------------------------------- > Réponse au message : > ------------------------------- > > > > > > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > faudrait voir ce que tu dois avoir comme communication entre dll et exe. > > > BruNews, ciao... > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > Pour le hook, ok, mais pour mon passage de paramètres ? :s > > > > > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > ------------------------------- > > > > > > > > > je ne comprends pas ton prob avec CallNextHookEx. > > > > > Fais toi creer le hook par la dll et tu n'auras pas a le communiquer. Une simple fonction InitMonHook() et une pour le fermer exportees par la dll devraient suffire. > > > > > BruNews, ciao... > > > > > > > > > > > > > > > ------------------------------- > > > > > Réponse au message : > > > > > ------------------------------- > > > > > > > > > > > Re-bonjour ... > > > > > > > > > > > > J'utilise ce code dans une dll : > > > > > > > > > > > > > > > > > > #define WIN32_LEAN_AND_MEAN > > > > > > > > > > > > #include <windows.h> > > > > > > > > > > > > HWND hApp = NULL; > > > > > > > > > > > > LRESULT CALLBACK CBTProc(INT nCode, WPARAM wParam, LPARAM lParam) { > > > > > > if (nCode == HCBT_CREATEWND) { > > > > > > if (hApp != NULL) PostMessage(hApp, WM_USER+1, 0, 0); > > > > > > return 1; > > > > > > } > > > > > > return 0; > > > > > > } > > > > > > > > > > > > VOID WINAPI SetAppWnd(HWND hWnd) { > > > > > > hApp = hWnd; > > > > > > } > > > > > > > > > > > > BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { > > > > > > return TRUE; > > > > > > } > > > > > > |
> > > > > > > > > > > > Le but est le suivant : l'application met en place un hook global, destiné à intercepter les appels à CreateWindow et CreateWindowEx ... L'enjeu étant la création d'un antipopup pour Internet Explorer, efficace et surtout gratuit... > > > > > > > > > > > > Mais lorsque dans mon programme, j'appelle (dynamiquement) la procédure SetAppWnd comme suit (dans le WM_CREATE de la WndProc de ma fenetre): > > > > > > > > > > > > > > > > > > typedef VOID WINAPI (*SETAPPWND)(HWND); > > > > > > > > > > > > SETAPPWND SetAppWnd = (SETAPPWND) GetProcAddress(hLib, "SetAppWnd@4"); // hLib étant l'instance de la dll chargée précedemment avec LoadLibrary > > > > > > > > > > > > SetAppWnd(wndMain); // wndMain étant le HWND de ma fenetre principale > > > > > > |
> > > > > > > > > > > > hApp dans la dll vaut toujours NULL, et la dll ne notifie donc pas le programme qu'elle vient de tuer une fenetre... > > > > > > > > > > > > De plus je comptais communiquer le HHOOK mis en place par le programme à la dll afin de pouvoir appeler CallNextHookEx de manière correcte, mais j'ai le même problème... > > > > > > > > > > > > Je tiens mes sources à disposition, si vous voulez tester, écrivez-moi un message :) > > > > > > > > > > > > Merci d'avance ! > > > > > > > > > > > > > > >
|
|
mardi 1 juillet 2003 à 16:28:07 |
Re : Communications exe / dll

Nebula
|
En théorie oui mais en pratique non, je ne comprend pas ou se situe l'erreur ------------------------------- Réponse au message : ------------------------------- > PostMessage() ne va pas ? > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Je voudrais juste que la dll envoie un message à la fenetre principale de l'exe, mais çà merde un poil... Tu veux jeter un oeil sur les sources ? > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > > > > > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > faudrait voir ce que tu dois avoir comme communication entre dll et exe. > > > > BruNews, ciao... > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > ------------------------------- > > > > > > > > > Pour le hook, ok, mais pour mon passage de paramètres ? :s > > > > > > > > > > > > > > > > > > > > ------------------------------- > > > > > Réponse au message : > > > > > ------------------------------- > > > > > > > > > > > je ne comprends pas ton prob avec CallNextHookEx. > > > > > > Fais toi creer le hook par la dll et tu n'auras pas a le communiquer. Une simple fonction InitMonHook() et une pour le fermer exportees par la dll devraient suffire. > > > > > > BruNews, ciao... > > > > > > > > > > > > > > > > > > ------------------------------- > > > > > > Réponse au message : > > > > > > ------------------------------- > > > > > > > > > > > > > Re-bonjour ... > > > > > > > > > > > > > > J'utilise ce code dans une dll : > > > > > > > > > > > > > > > > > > > > > #define WIN32_LEAN_AND_MEAN > > > > > > > > > > > > > > #include <windows.h> > > > > > > > > > > > > > > HWND hApp = NULL; > > > > > > > > > > > > > > LRESULT CALLBACK CBTProc(INT nCode, WPARAM wParam, LPARAM lParam) { > > > > > > > if (nCode == HCBT_CREATEWND) { > > > > > > > if (hApp != NULL) PostMessage(hApp, WM_USER+1, 0, 0); > > > > > > > return 1; > > > > > > > } > > > > > > > return 0; > > > > > > > } > > > > > > > > > > > > > > VOID WINAPI SetAppWnd(HWND hWnd) { > > > > > > > hApp = hWnd; > > > > > > > } > > > > > > > > > > > > > > BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { > > > > > > > return TRUE; > > > > > > > } > > > > > > > |
> > > > > > > > > > > > > > Le but est le suivant : l'application met en place un hook global, destiné à intercepter les appels à CreateWindow et CreateWindowEx ... L'enjeu étant la création d'un antipopup pour Internet Explorer, efficace et surtout gratuit... > > > > > > > > > > > > > > Mais lorsque dans mon programme, j'appelle (dynamiquement) la procédure SetAppWnd comme suit (dans le WM_CREATE de la WndProc de ma fenetre): > > > > > > > > > > > > > > > > > > > > > typedef VOID WINAPI (*SETAPPWND)(HWND); > > > > > > > > > > > > > > SETAPPWND SetAppWnd = (SETAPPWND) GetProcAddress(hLib, "SetAppWnd@4"); // hLib étant l'instance de la dll chargée précedemment avec LoadLibrary > > > > > > > > > > > > > > SetAppWnd(wndMain); // wndMain étant le HWND de ma fenetre principale > > > > > > > |
> > > > > > > > > > > > > > hApp dans la dll vaut toujours NULL, et la dll ne notifie donc pas le programme qu'elle vient de tuer une fenetre... > > > > > > > > > > > > > > De plus je comptais communiquer le HHOOK mis en place par le programme à la dll afin de pouvoir appeler CallNextHookEx de manière correcte, mais j'ai le même problème... > > > > > > > > > > > > > > Je tiens mes sources à disposition, si vous voulez tester, écrivez-moi un message :) > > > > > > > > > > > > > > Merci d'avance ! > > > > > > > > > > > > > > > > > > > > >
|
|
mardi 1 juillet 2003 à 16:33:41 |
Re : Communications exe / dll

BruNews
|
mets ici juste comment tu envoies ton PostMessage et comment tu le recois dans la wndproc. BruNews, ciao... ------------------------------- Réponse au message : ------------------------------- > En théorie oui mais en pratique non, je ne comprend pas ou se situe l'erreur > > > > ------------------------------- > Réponse au message : > ------------------------------- > > > PostMessage() ne va pas ? > > BruNews, ciao... > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Je voudrais juste que la dll envoie un message à la fenetre principale de l'exe, mais çà merde un poil... Tu veux jeter un oeil sur les sources ? > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > > > > > > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > ------------------------------- > > > > > > > > > faudrait voir ce que tu dois avoir comme communication entre dll et exe. > > > > > BruNews, ciao... > > > > > > > > > > > > > > > ------------------------------- > > > > > Réponse au message : > > > > > ------------------------------- > > > > > > > > > > > Pour le hook, ok, mais pour mon passage de paramètres ? :s > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------- > > > > > > Réponse au message : > > > > > > ------------------------------- > > > > > > > > > > > > > je ne comprends pas ton prob avec CallNextHookEx. > > > > > > > Fais toi creer le hook par la dll et tu n'auras pas a le communiquer. Une simple fonction InitMonHook() et une pour le fermer exportees par la dll devraient suffire. > > > > > > > BruNews, ciao... > > > > > > > > > > > > > > > > > > > > > ------------------------------- > > > > > > > Réponse au message : > > > > > > > ------------------------------- > > > > > > > > > > > > > > > Re-bonjour ... > > > > > > > > > > > > > > > > J'utilise ce code dans une dll : > > > > > > > > > > > > > > > > > > > > > > > > #define WIN32_LEAN_AND_MEAN > > > > > > > > > > > > > > > > #include <windows.h> > > > > > > > > > > > > > > > > HWND hApp = NULL; > > > > > > > > > > > > > > > > LRESULT CALLBACK CBTProc(INT nCode, WPARAM wParam, LPARAM lParam) { > > > > > > > > if (nCode == HCBT_CREATEWND) { > > > > > > > > if (hApp != NULL) PostMessage(hApp, WM_USER+1, 0, 0); > > > > > > > > return 1; > > > > > > > > } > > > > > > > > return 0; > > > > > > > > } > > > > > > > > > > > > > > > > VOID WINAPI SetAppWnd(HWND hWnd) { > > > > > > > > hApp = hWnd; > > > > > > > > } > > > > > > > > > > > > > > > > BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { > > > > > > > > return TRUE; > > > > > > > > } > > > > > > > > |
> > > > > > > > > > > > > > > > Le but est le suivant : l'application met en place un hook global, destiné à intercepter les appels à CreateWindow et CreateWindowEx ... L'enjeu étant la création d'un antipopup pour Internet Explorer, efficace et surtout gratuit... > > > > > > > > > > > > > > > > Mais lorsque dans mon programme, j'appelle (dynamiquement) la procédure SetAppWnd comme suit (dans le WM_CREATE de la WndProc de ma fenetre): > > > > > > > > > > > > > > > > > > > > > > > > typedef VOID WINAPI (*SETAPPWND)(HWND); > > > > > > > > > > > > > > > > SETAPPWND SetAppWnd = (SETAPPWND) GetProcAddress(hLib, "SetAppWnd@4"); // hLib étant l'instance de la dll chargée précedemment avec LoadLibrary > > > > > > > > > > > > > > > > SetAppWnd(wndMain); // wndMain étant le HWND de ma fenetre principale > > > > > > > > |
> > > > > > > > > > > > > > > > hApp dans la dll vaut toujours NULL, et la dll ne notifie donc pas le programme qu'elle vient de tuer une fenetre... > > > > > > > > > > > > > > > > De plus je comptais communiquer le HHOOK mis en place par le programme à la dll afin de pouvoir appeler CallNextHookEx de manière correcte, mais j'ai le même problème... > > > > > > > > > > > > > > > > Je tiens mes sources à disposition, si vous voulez tester, écrivez-moi un message :) > > > > > > > > > > > > > > > > Merci d'avance ! > > > > > > > > > > > > > > > > > > > > > > > > > > > >
|
|
mardi 1 juillet 2003 à 16:42:16 |
Re : Communications exe / dll

Nebula
|
Code (complet) de la dll : #define WIN32_LEAN_AND_MEAN
#include <windows.h>
HWND wnd = NULL; UINT msg = WM_USER;
LRESULT CALLBACK CBTProc(INT nCode, WPARAM wParam, LPARAM lParam) { if (nCode == HCBT_CREATEWND) { PostMessage(wnd, msg, 0, 0); return 1; } return 0; }
VOID WINAPI SetWndApp(HWND hWnd, UINT uMsg) { wnd = hWnd; msg = uMsg; }
BOOL WINAPI DllEntryPoint(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { return TRUE; }
|
Code de la WndProc : case WM_CREATE: SetWndApp(hWnd, WM_USER+1); return 0; case (WM_USER+1): TrayIcon.hIcon = xKill; lstrcpy(TrayIcon.szTip, "Enragé"); Shell_NotifyIcon(NIM_MODIFY, &TrayIcon); return 0;
|
|
|
Cette discussion est classée dans : code, dll, hwnd, setappwnd, happ
Répondre à ce message
Sujets en rapport avec ce message
Dll en c++ dans du code C [ par rurouni41 ]
bonjour, je dois integrer une DLL codee en C++ dans un programme en c...Donc je voulais savoir s'il y avait moyen(et comment faire) d ouvrir et d'util
Lien explicite de DLL [ par garslouche ]
Bonjour,j'aimerai savoir si quelqu'un sait comment on accède à une variable (et pas à une fonction) en ayant lié explicitement une DLL ? En gros mon c
(MS VCpp) Problème de variables [ par YS1 ]
J'ai créé une DLL C+PP que je souhaite utiliser dans un programe VB.La fonction principale de la DLL renvoie un certain nombre de variables, qui sont
gestion des exceptions dans Visual C++ 6 [ par devmail ]
Bonjour a tous,je suis en cours de developpement d'un programme compose d'un prg principale et de plusieurs dll. J'ai terminer les traitements et souh
DLL activeX [ par guiguimac ]
Bonjour,n'ayant jamais rien fait de trés poussé en C++, j'aimerai savoir si qq'un dispose d'un tut ou d'un exemple de code permettant la réalisation d
Idle - Hook - dll [ par Manson ]
Bonjour,voila, j'ai trouve le code d'une dll permettant de savoirdepuis combien de temps le PC est inactif.Mais voila, elle a un probleme, quelque foi
Utilisation DLL SANS .lib [ par nasedo47 ]
J'ai récupéré une DLL sur un site ainsi qu'une page avec les prototypes de toutes les fonctions contenues dans cette DLL.J'aimerais utiliser ces fonct
Dll LoadLibrary --> Erreur [ par mortiis ]
Bonjour à tous J'ai fait un prog qui devrais utiliser une dll pour faire un test j'ai fait un dll qui me fait afficher un MessageBox.Le problème est q
utilisation en C (ou C++) de (source C ou) DLL [ par wipeout ]
Mon but est d'utiliser des fichiers C (avec .c et .h... bien sur!) dans mon application linux et windows. Je dispose d'une DLL compilé (par http://www
Dll + LoadLibrary [ par Manson ]
Salut,voila, j'ai fais une dll dont le code est le suivant :void __declspec(dllexport)show_msg(HWND hWnd, char *msg){ MessageBox(hWnd, msg, "Dll Powa
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|