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
[MIX 2010] - TELECHARGEZ INTERNET EXPLORER 9 EN PREVIEW ![MIX 2010] - TELECHARGEZ INTERNET EXPLORER 9 EN PREVIEW ! par redo
La Preview de Windows Explorer 9 est maintenant disponible à l'adresse suivante : http://ie.microsoft.com/testdrive/ Cette version ne nécessite pas un redémarrage de votre machine pour être exploitée . Cette version est fonctionnelle mais reste cependant ...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - KEYNOTE DAY 2 ONLINE : WINDOWS INTERNET EXPLORER 9, JQUERY, ODATA ET DALLAS CTP2 ![MIX 2010] - KEYNOTE DAY 2 ONLINE : WINDOWS INTERNET EXPLORER 9, JQUERY, ODATA ET DALLAS CTP2 ! par redo
Dans la lignée du premier keynote, retrouvez la vidéo du second keynote en ligne : Visionnez la vidéo à l'url suivante : http://www.microsoft.com/presspass/events/mix/VideoGallery.aspx Vous y retrouverez ainsi les speakers Scott Guthrie, Dean Hachamovitch...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - RETOUR D'EXPéRIENCE DéVELOPPEMENT SEESMIC SUR WINDOWS PHONE 7[MIX 2010] - RETOUR D'EXPéRIENCE DéVELOPPEMENT SEESMIC SUR WINDOWS PHONE 7 par redo
En avant première, Loic le retour d'expérience de Loïc Le Meur du portage de l'application http://seesmic.com/ sur plateforme Windows Phone 7 . c'était d'ailleurs une des rares opportunités de tester, voir toucher le nouveau device . voyez par vous-même :...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - LE KEYNOTE DAY 1 DISPONIBLE ONLINE ![MIX 2010] - LE KEYNOTE DAY 1 DISPONIBLE ONLINE ! par redo
Si tout comme moi, vous avez manqué de peu le premier keynote du Microsoft Mix 2010, je vous invite à prendre deux heure et le consulter ci-dessous . Visionnez le Keynote à l'url suivante : http://www.microsoft.com/Presspass/events/mix/videoGallery.aspx?c...
Cliquez pour lire la suite de l'article par redo VISUAL STUDIO TALK SHOW: EF4VISUAL STUDIO TALK SHOW: EF4 par Matthieu MEZIL
La semaine dernière, j'étais à Montréal pour y animer des conférences sur Entity Framework. J'en ai profité pour enregister un podcast Visual Studio Talk Show que vous pouvez retrouver ici ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
Comparez les prix

HTC Magic
Entre 429€ et 429€
|