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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|