begin process at 2010 03 17 07:37:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Communications exe / dll


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Communications exe / dll

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

Nebula

Membre Club
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

Administrateur CodeS-SourceS
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

Membre Club
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

Administrateur CodeS-SourceS
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

Membre Club




-------------------------------
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

Membre Club
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

Administrateur CodeS-SourceS
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

Membre Club
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

Administrateur CodeS-SourceS
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

Membre Club
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;

1 2

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


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales