Hook

Résolu
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 - 13 févr. 2008 à 23:20
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 14 févr. 2008 à 14:56
Bonjour,

Je voudrais hooker une boîte de dialogue.

Le but est de récupérer le titre des fenêtres qui s'ouvrent avant qu'elles soient affichées et de bloquer suivant le titre.
Attention ce sont des boites de dialogues.

Je code sous Dev-C++ (donc pas de MFC SVP).

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com

10 réponses

victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
14 févr. 2008 à 00:00
Bonjour,

Voilà un code qui fonctionne mais pas sur toute les fenêtres.
Il marche par exemple avec Notepad++ mais pas si on prend par exemple Firefox...
J'ai relevé les fenêtres à l'endroit où j'indique en commentaire l'enregistrement des noms et classe de fenêtre (c'est ce qui me permet d'affirmer que ça marche avec presque pas de fenetres)

#include <windows.h>

HINSTANCE thismod;
HHOOK hhk;

extern "C" __declspec(dllexport) BOOL WINAPI DllMain(HINSTANCE hDll, DWORD dwReason,
LPVOID Reserved)
{
    if(dwReason == DLL_PROCESS_ATTACH)
    {
        thismod = hDll;
    }
    return 1;
}

LRESULT CALLBACK kbdWinAmp(int nCode, WPARAM wParam, LPARAM lParam)
{
    if(nCode == HCBT_ACTIVATE)
    {
        HWND hWnd = (HWND) wParam;
        char Temp[4096];
        char Temp2[4096];
        GetWindowText(hWnd, Temp, 4096);
        GetClassName(hWnd, Temp2, 4096);
        // Enregistrement du nom de fenetre et classe
    }

    return CallNextHookEx(hhk, nCode, wParam, lParam);
}

__declspec(dllexport) int __stdcall Intercepte()
{
    if(!hhk)
        hhk  = SetWindowsHookEx(WH_CBT, kbdWinAmp, thismod, 0);
    return (int) hhk;
}

__declspec(dllexport) void __stdcall Relache()
{
    if(hhk)
    {
        UnhookWindowsHookEx(hhk); hhk = 0;
    }
}

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
3
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
14 févr. 2008 à 10:38
Bonjour,

Apparament ça veut bien marcher maintenant.

Merci quand même et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 févr. 2008 à 14:10
Si par exemple la fenêtre est créée depuis un service alors pas d'interception, le hook n'entre pas dans un service.

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 févr. 2008 à 10:45
Essaie avec HCBT_SETFOCUS

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 févr. 2008 à 10:45
ok, alors tant mieux.

ciao...
BruNews, MVP VC++
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
14 févr. 2008 à 13:37
Bonjour,

En fait ya quelques programmes où ça marche pas parceque la DLL ne s'est pas chargée.
Mais est-ce qu'on peut récupérer la création des fenêtres et de ses contrôles ?

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
14 févr. 2008 à 14:17
Bonjour,

Ok merci, n'y a t-il pas moyen de détecter quand même ?

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 févr. 2008 à 14:23
Certainement en hookant CreateWindowEx mais je n'ai pas du tout le temps d'essayer.

ciao...
BruNews, MVP VC++
0
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
14 févr. 2008 à 14:26
Bonjour,

Si t'as juste un lien pour que je puisse hooker cette fonction et essayer ça serait sympa.

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 févr. 2008 à 14:56
Jette un oeil ici:
http://www.cppfrance.com/codes/HOOKER-ZWCREATEFILE_39994.aspx

il y a surement d'autres exemples, faut fouiller.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous