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 quitter un programme deja lancé ?


Sujet :

C++Builder

  1. #1
    Invité
    Invité(e)
    Par défaut Comment quitter un programme deja lancé ?
    Bonjour,

    Je suis debutant en programmation et aussi en c++ builder.

    J'ai pour projet de creer un programme qui lorsque on le lance ouvre des programme (ex firefox, nero ...) et apres qu'il les referme !

    Pour le moment j'ai deja reussi a ouvrir les programme grace a => http://www.developpez.net/forums/arc.../t-104572.html

    Au passage sa marche tres bien, mais par contre je n'arrive pas a refermer les programmes ouvert ! Est ce qu'il faut utiliser Close(); avec un parametre je ne sais pas Un peu d'aide serait le bien venue

    Merci

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 92
    Points
    92
    Par défaut
    et bien tu peux peut être utiliser shellexecute avec "close" à la place de "open"

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut jeanjean8501:
    Un lien sur le FORUM qui je pense va t'interresser.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  4. #4
    Invité
    Invité(e)
    Par défaut
    @ Pendary : J'ai deja esayer

    @ blondelle : Merci ejvai voir ca je vous tiens au courant

  5. #5
    Invité
    Invité(e)
    Par défaut
    Voila ,

    @ blondelle je n'ai pas tout compris ce qu'il a ete dit dans lien que tu m'a passé !

    Voila mon source !

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma link "trayicon"
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    ShellExecute(NULL, //Handle de la fentetre parent
            "open", // Action a effectuer
            "C:\\Program Files\\Mozilla Firefox\\firefox.exe", // Fichier
            "", // Parametres
            "", // repertoire par defaut
            SW_SHOWDEFAULT  // Maniere d'afficher
            );
         // FAIRE PAUSE DE 10 SECONDES
     
    ShellExecute(NULL, //Handle de la fentetre parent
            "open", // Action a effectuer
            "C:\\Program Files\\MSN Messenger\\msnmsgr.exe", // Fichier
            "", // Parametres
            "", // repertoire par defaut
            SW_SHOWDEFAULT// Maniere d'afficher
            );
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
            Form1->Close();
    }
    //---------------------------------------------------------------------------
    Ce que je veu faire c'est lancer firefox en minimiser , attendre 10 sec apres je veu lancer msn en minimiser attendre 5 sec et une fois que ces deux programmes on ete executer je voudrai que firefox se ferme !

    Si quelqun pouvait m'eclairer sur les quelques details qui m"echapent se serai cool

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Pour pouvoir fermer ton programme il te faut recuperer son Handle pour cela tu peu utiliser soit WinSinght32 de Borland, soit Spy++ de Visual c++6.0, soit mycatch, tu recupere ce Handle avec la fonction FindWindow
    et la tu pourra fermer
    le parametre NULL peut avoir une valeur
    h = FindWindow(NULL, "Impression d'étiquettes avec une Base de données ODBC et Codesoft");
    if (h != NULL) PostMessage(h, WM_CLOSE, 0, 0);
    Sur firefox je ne peu pas t'aider je ne l'ai pas mais avec un des utilitaires cites plus haut en cherchant un peu tu devrais t'en sortir.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Points : 179
    Points
    179
    Par défaut
    Bonsoir,
    Tu peux faire comme ceci

    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
            STARTUPINFO         siStartupInfo;
    PROCESS_INFORMATION piProcessInfo;
     
    memset(&siStartupInfo, 0, sizeof(siStartupInfo));
    memset(&piProcessInfo, 0, sizeof(piProcessInfo));
    siStartupInfo.cb = sizeof(siStartupInfo);
    if(CreateProcess(NULL,"c:\\windows\\notepad.exe",0,0,FALSE,
                         CREATE_DEFAULT_ERROR_MODE,0,0,
                         &siStartupInfo,&piProcessInfo) == FALSE)
    {
    // erreur
    }
    else
    {
       Sleep(10000); //attente 10 secondes
       // fermeture
       PostThreadMessage(piProcessInfo.dwThreadId, WM_QUIT, 0, 0);
       ::CloseHandle(piProcessInfo.hThread);
       ::CloseHandle(piProcessInfo.hProcess);
    }
    Tout est expliqué ici.
    Cordialement,
    Benjamin

  8. #8
    Invité
    Invité(e)
    Par défaut
    Merci Grosbenji sa marche

    J'ai preferere prendre ta solution car celle de blondelle me donnait une erreur Pour le moment jopte pour la faciliter donc j'essairai de trouver une maniere plus simple plus tard ! Merci a vous pour votre aide

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/03/2010, 13h23
  2. Réponses: 20
    Dernier message: 18/05/2008, 16h33
  3. comment quitter un autre programme
    Par yahi.jye dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/09/2007, 00h43
  4. Comment quitter un programme?
    Par Subkill dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 09/02/2007, 20h18
  5. Afficher un programme d'un exe deja lancé
    Par pottiez dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/07/2006, 23h39

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