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 fermer une autre application à partir de son application


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club Avatar de renesouley
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut Comment fermer une autre application à partir de son application
    Salut!
    je suis moniteur d'un cybercafé et je voudrais bien controler mon réseau
    j'ai donc conçu un petit logiciel Client/serveur qui me permet d'administrer le reseau local du cyber.(BCB6)

    il me permet aussi:
    de tchater avec mes clients sur le petit reseau
    de fermer une session windows sur le reseau
    d'eteindre ou redemmarrer un ordinateur du reseau,
    de reduire toutes les fenetres actives sur un ordi donnée à partir du serveur

    Le probleme, ce que je souhaite fermer toutes les fenetres ou apllications ouvertes si possibles sans eteindre l'ordi et là je n'arrive pas à trouver le code.

    D'une part:
    voici les codes que j'ai trouver dans trucs et astuces

    Pour reduire:
    PostMessage(FindWindow("Shell_TrayWnd", NULL), WM_COMMAND, 415, 0);

    D'autre commandes :
    - 403 Les fenêtres en cascade.
    - 404 Les fenêtres en mosaique horizontale.
    - 405 Les fenêtres en mosaique verticale.
    - 416 Annule la dernière action parmis les précedentes.
    - 413 Appelle la fenêtre de propriété de la barre des taches.
    - 408 Appelle la fenêtre de propriété date heure.
    - 401 Appelle La fenêtre Executer.
    et j'en ai trouvé d'autres codes sur le site de microsoft

    malheureusement pas de code qui permet de fermer toutes les fenetres ouvertes,
    quelqu'un peut-il m'aider?

    Je vous remercie à l'avance!

    |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    D'autre part il ya la fonction WM_Close de l'API
    mais comment recuperer le handle d'une application quelconque et lui poster cette commade???

  2. #2
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Salut, peut-être que les post suivants peuvent t'aidé:
    http://www.developpez.net/forums/sho...d.php?t=249580

  3. #3
    Nouveau membre du Club Avatar de renesouley
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    Merci de votre reponse Crayon!

    j'ai bien lu les propositions relatives au debat lancé par Flo, mais cela ne resoud pas mon problème. puisque je connais pas les handles des diferentes fenetres ouvertes. or dans l'exemple donné on connais à l'avance le nom de l'application manipulé "SciCalc"
    Je peux reposer mon problème autrement:
    Comment fermer toutes les fenetres "Internet explorer" ouvertes à partir de mon application?

    Merci d'avance pour votre contribution
    René

  4. #4
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Le nom de la classe pour IE est: IEFrame

    Donc tu fermes tout les fenêtres qui se nomme IEFrame

    Je pense

  5. #5
    Nouveau membre du Club Avatar de renesouley
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    Merci Crayon de la reponse, elle m'a permi de resoudre le probleme!

    le code suivant ferme effectivement la fenetre IE active
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PostMessage(FindWindow("IEFRAME", NULL), WM_CLOSE, 0, 0);
    Pour fermer toutes les fenetres j'ai introduit une boucle comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(int i=0;i<=20;i++)
    {   PostMessage(FindWindow("IEFRAME", NULL), WM_CLOSE, 0, 0);  }
    Lorsque je lance la commande une première fois , une seule fenetre se ferme.
    Une deuxième fois, soit toutes les pages IE se ferment, soit une seule fenere se ferme et Malgré la boucle, je dois lancer autant de fois la commande que le nombre de pages IE ouvertes, ce qui n'est pas normal.

    Pourriez vous m'aider à améliorez le code pour que je fermer en un seul clic toutes les pages IE ouvertes ?

    Merci d'avance
    René!

  6. #6
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Je ne sais pas si sa peut améliorer la situation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    bool bStay = true;
    HWND MyHandle;
    while(bStay)
    {
       MyHandle = FindWindow("IEFRAME", NULL);
       if(MyHandle!=NULL)
          PostMessage(MyHandle, WM_CLOSE, 0, 0);
       else
          bStay = false;
    }
    Code non testé (j'ai pas BCB ici)

  7. #7
    Nouveau membre du Club Avatar de renesouley
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 38
    Points : 35
    Points
    35
    Par défaut Et ca marche!
    Merci Dave!
    Votre code a definitivement résolu mon problème
    je vous en suis tres reconnaissant

    Au fait je ne suis pas bien calé en BCB, je fais juste de l'autodidact.
    et je constate que avec le forum l'on pourra réaliser des grandes choses même quand on est zero en programmation.

    Merci encore pour votre contribution.
    a plus sur le forum!!
    René

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/11/2014, 17h30
  2. Réponses: 2
    Dernier message: 07/02/2013, 14h20
  3. comment fermer une form a partir d'une autre form?
    Par mead_Developper dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/06/2009, 21h54
  4. Réponses: 6
    Dernier message: 17/02/2009, 20h32
  5. Comment fermer une fenetre a partir d'une frame
    Par ideal dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/08/2006, 14h39

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