IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

intercepter les messages Windows... d'un autre processus !


Sujet :

Windows

  1. #1
    VVE
    VVE est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 72
    Points : 47
    Points
    47
    Par défaut intercepter les messages Windows... d'un autre processus !
    Résumé du problème : je voudrais intercepter les demandes de fermeture qui sont faites à un programme pour pouvoir effectuer un traitement AVANT l'arrêt de ce programme.

    La piste que je cherche à suivre : créer un moniteur qui puisse anticiper l'arrêt du programme en question en interceptant les demandes d'arrêt.

    Je cherche a intercepter les messages Windows qui sont postés à une autre fenêtre que celles de mon programme.

    Pour corser le tout, je cherchais à le faire en VB6 !
    Apparemment ce n'est pas possible.

    Comment faire ? Quel langage C++ ? Delphi ?

    Ce que j'ai fait en VB :
    Je sais déjà surclasser la procédure Windows qui traitent les messages reçus par une de mes fenêtres, mais comment intercepter les messages émis vers un autre processus ?

    J'ai essayé d'utiliser la fonction API MsgWaitForMultipleObjects() pour attendre qu'un message soit posté à la fenêtre du processus surveillé, mais une fois que j'ai été "réveillé", je n'arrive pas à lire la file d'attente des messages Windows postés.

    J'ai téléchargé un OCX "MessageBlaster32" qui est censé faire ça mieux que moi, mais ça marche pô !

    any idea ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut
    En général l'interception des messages se fait par des "hook", qui sont de différents types. Celà s'écrit en C, il y a 3 API Windows qui gère les hooks :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    SetWindowsHookEx
    The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types of events. These events are associated either with a specific thread or with all threads in the same desktop as the calling thread. 
    
    HHOOK SetWindowsHookEx(
      int idHook,        // hook type
      HOOKPROC lpfn,     // hook procedure
      HINSTANCE hMod,    // handle to application instance
      DWORD dwThreadId   // thread identifier
    );
    
    
    CallNextHookEx
    The CallNextHookEx function passes the hook information to the next hook procedure in the current hook chain. A hook procedure can call this function either before or after processing the hook information. 
    
    LRESULT CallNextHookEx(
      HHOOK hhk,      // handle to current hook
      int nCode,      // hook code passed to hook procedure
      WPARAM wParam,  // value passed to hook procedure
      LPARAM lParam   // value passed to hook procedure
    );
    
    UnhookWindowsHookEx
    The UnhookWindowsHookEx function removes a hook procedure installed in a hook chain by the SetWindowsHookEx function. 
    
    BOOL UnhookWindowsHookEx(
      HHOOK hhk   // handle to hook procedure
    );
    pour plus de détails, tu peux consulter le MSDN.

  3. #3
    VVE
    VVE est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 72
    Points : 47
    Points
    47
    Par défaut
    merci du tuyau, je vais essayer...

    A++

    8)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Windows] Intercepter les messages d'un handle
    Par mister3957 dans le forum Windows
    Réponses: 4
    Dernier message: 17/10/2011, 10h28
  2. Intercepter les messages de windows
    Par Teyyeb dans le forum Débuter
    Réponses: 1
    Dernier message: 06/04/2008, 09h12
  3. Comment intercepter les messages d'un processus sous windows?
    Par Hamdi Hedhili dans le forum Général Java
    Réponses: 3
    Dernier message: 17/03/2008, 17h57
  4. Hook pour récupérer les messages windows d'une autre application
    Par Tuizi dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 07/12/2007, 16h30
  5. Intercepter les messages windows
    Par schneed dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/12/2005, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo