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

Visual C++ Discussion :

[Win32] Pb avec "GetMessage"


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Par défaut [Win32] Pb avec "GetMessage"
    Bonjour à tous ,

    Voici mon problème je n'arrive pas à receptionner avec mon "GetMessage" dans mon .exe un message WM_QUITenvoyé par une DLL, je farme donc jamais mon .exe.
    J'ai essaillé d'envoyer ce même message à "windows média player" et la pas de problème sa provoque bien l'arret du programme.

    voici une partie du code contenu dans mon .exe :

    ...
    HWND CourantHandle = FindWindow("ConsoleWindowClass","C:\\ProjetsMG\\toto\\Debug\\toto.exe");
    HWND hMediaplayer = FindWindow("WMPlayerApp",NULL);

    systemState = InitialisationPhase(CourantHandle); // Phase d'init de ma DLL + choix du handel cible.
    ...

    voici une partie du code contenu dans ma .dll:

    void Init(HWND hDest) // _export est spécifique à BCB
    {...
    PostMessage(hDest, WM_QUIT, 0, 0);
    ...
    }
    Si quelqu'un peu m'aider

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Par défaut
    Bonjour

    Je pense que ton couranthandle n'est pas bon.
    essaye plutot.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HWND CourantHandle = FindWindow(NULL,"ConsoleWindowClass");
    cordialement

  3. #3
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Citation Envoyé par ricky78 Voir le message
    Bonjour

    Je pense que ton couranthandle n'est pas bon.
    essaye plutot.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HWND CourantHandle = FindWindow(NULL,"ConsoleWindowClass");
    cordialement
    Plutot faire cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HWND CourantHandle = FindWindow(NULL,"titre de ta fenêtre");

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Par défaut
    Citation Envoyé par homeostasie Voir le message
    Plutot faire cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HWND CourantHandle = FindWindow(NULL,"titre de ta fenêtre");
    Merci pour t'as réponse,

    Pour plus de précision mon projet est un projet console :

    Le nom de ma fenêtre est bien "C:\\ProjetsMG\\toto\\Debug\\toto.exe" donc aucune différence visiblement entre :
    HWND CourantHandle = FindWindow("ConsoleWindowClass","C:\\ProjetsMG\\toto\\Debug\\toto.exe");
    HWND CourantHandle = FindWindow(NULL,"C:\\ProjetsMG\\toto\\Debug\\toto.exe");
    Dans les deux cas :

    - CourantHandle > 0.
    - WM_QUIT n'est pas reçu par GetMessage

  5. #5
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Alors essaye plutot le message WM_CLOSE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ::PostMessage(hConsole, WM_CLOSE, 0, 0);

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Par défaut
    Citation Envoyé par homeostasie Voir le message
    Alors essaye plutot le message WM_CLOSE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ::PostMessage(hConsole, WM_CLOSE, 0, 0);
    Super , un grand merci "homeostasie".
    T'as piste était la bonne (j'ai un peu honte d'avoir si mal cherché )
    J'avais essailler WM_DESTROY mais sa ne fonctionnait pas.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 101
    Par défaut
    Merci pour t'as réponse.

    Mais je pense que ma version est bonne puisque j'ai bien une valeur positive renvoyé dans les 2 cas par la fonction "FindWindow".*

    HWND CourantHandle = FindWindow("ConsoleWindowClass","C:\\ProjetsMG\\toto\\Debug\\toto.exe");
    HWND hMediaplayer = FindWindow("WMPlayerApp",NULL);
    CourantHandle > 0 et hMediaplayer >0

    par contre avec sa :

    HWND CourantHandle = FindWindow(NULL,"ConsoleWindowClass");
    CourantHandle == 0.

    Mais merci quand meme pour la piste

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

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