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

C++Builder Discussion :

Comment détecter la fermeture d'une fenêtre?


Sujet :

C++Builder

  1. #1
    Membre actif Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Points : 221
    Points
    221
    Par défaut Comment détecter la fermeture d'une fenêtre?
    Bonjour!

    J'aimerais que mon application détecte la fermeture d'une fenêtre d'une autre application. J'ai modifié un code trouve sur le forum comme ceci suivant un handle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    HWND h;
    do
    {
        h = FindWindow("IEXPLORE", NULL);
        Label1->Caption="Attente....";
        if(h==NULL)
        {
         // la fenêtre n'a pas été trouvée
            Label1->Caption ="Detecter  fermeture";
         }
    }while(h !=NULL);
    Malheureusement cela ne marche pas;
    Je me demandais si je n'avais pas fait une erreur dans le nom de l'application (J'ai mis celui qui est indiqué dans le gestionnaire des tâches (processus))à mettre dans le FindWindows.
    Donc je voudrais savoir quel nom mettre pour une application tels que IE, excel, et word?

    Y a t il une autre méthode pour détecter la fermeture d'une fenêtre?

    merci de votre aide

  2. #2
    Membre actif Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Points : 221
    Points
    221
    Par défaut
    Voici le code pour détecter la fermeture d'une fenêtre :
    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
     
    do 
    {
      h = FindWindow("IEFRAME", NULL);
      Label1->Caption="Recherche fenetre...";
      if ( h == NULL)
      {
       Label1->Caption="Fermeture Fenetre";
      }else
      {
       Label1->Caption=" Fenetre ouverte";
       }   
       Sleep(0);
     /* Sleep(0) force a rendre la main au scheduler. On peut suivant la criticité de l'application mettre un temps plus long, cela permet d'eviter de bloquer la machine en prenant 100% du CPU quand on fait du pooling comme la */
    } while (h != NULL); /*en mettant ==NULL on détecte l'ouverture
    Sinon pour obtenir le nom de classe de la fenêtre, j'ai utilisé spy++ outil de Visual c++ v6. Y a t il un même utilitaire sous BCB?.

    Pour info: XLMAIN est une fenêtre Excel 2003.

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

Discussions similaires

  1. [Lazarus] Comment interrompre la fermeture d'une fenêtre ?
    Par Modulpro dans le forum Lazarus
    Réponses: 5
    Dernier message: 19/01/2011, 19h54
  2. Comment détecter la fermeture d'une DLL ?
    Par B-Technix dans le forum Langage
    Réponses: 8
    Dernier message: 21/10/2008, 10h33
  3. Comment détecter la fermeture d'une fenêtre par la croix?
    Par man_coef dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/06/2008, 16h34
  4. Réponses: 13
    Dernier message: 20/07/2007, 13h51
  5. [VB.Net] Comment gérer la fermeture d'une fenêtre ?
    Par nakata77 dans le forum VB.NET
    Réponses: 2
    Dernier message: 14/09/2006, 10h31

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