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 :

ShellExecute


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 5
    Par défaut ShellExecute
    Bonjour,

    Je voudrais lancer une application externe (.exe) depuis Borland, et arrêter l'exécution du programme principal pendant que l'utilisateur utilise cette appli.
    J'ai donc essayé en utilisant les foncions du type ShellExecute et execl.
    Mon problème est le suivant :
    - Si j'utilise la fonction execl, Borland lance l'autre appli et ne reviens plus dans le programme principal (ce qui est normal d'après l'aide :
    When an exec... call succeeds, the child process overlays the parent process.
    )
    - Si j'utilise la fonction ShellExecute, Borland lance l'autre appli et continu son exécution en parallèle.

    Est-il possible de savoir a quel moment l'utilisateur quitte l'application secondaire, ou quelqu'un sait-il si il existe une autre fonction qui me permettrait de résoudre mon problème ?

    Merci d'avance

    Vincent

    [/quote]

  2. #2
    Membre éprouvé Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    Février 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 124
    Par défaut
    Ce tuto peut eventuellement t'aider :
    http://chgi.developpez.com/thread/

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 137
    Par défaut
    J'ai cette fonction sous la main...

    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
    bool execute(AnsiString cmd)
    {
        PROCESS_INFORMATION pi;
        STARTUPINFO si;
        ZeroMemory(&si, sizeof(si));
        si.cb=sizeof(si);
        si.dwFlags=STARTF_USESHOWWINDOW;
        si.wShowWindow=SW_HIDE;
        ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));
        if (!CreateProcess(NULL, cmd.c_str(), 0, 0, false, CREATE_NEW_CONSOLE, 0, 0, &si, &pi))
            return(false);
        CloseHandle(pi.hThread);
        WaitForSingleObject(pi.hProcess, INFINITE);
        CloseHandle(pi.hProcess);
        return(true);
    }

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 5
    Par défaut [resolu] ShellExecute
    Merci pour vos réponses.

    Je n'avais pas connaissance de la fonction WaitForSingleObject().
    Pour ce que j'ai à faire, c'est parfait.....

    Du coup, je vais mieux démarrer le week-end.
    En espérant qu'il soit également bon pour vous.

    a bientôt
    Vincent

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

Discussions similaires

  1. J'ai des soucis avec Delphi8 ShellExecute...
    Par manu00 dans le forum Delphi .NET
    Réponses: 6
    Dernier message: 25/07/2004, 08h38
  2. shellexecute + chemin avec espace
    Par abignon dans le forum MFC
    Réponses: 2
    Dernier message: 26/01/2004, 22h15
  3. test de l'exectuion d'un bat par Shellexecute
    Par Argonz dans le forum C++Builder
    Réponses: 8
    Dernier message: 10/12/2003, 08h18
  4. Ouvrir le poste de travail (avec ShellExecute) ?
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/08/2003, 11h09
  5. Réponses: 2
    Dernier message: 18/11/2002, 09h12

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