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

Delphi Discussion :

Attendre la fin d'un processus


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Attendre la fin d'un processus
    Salut a vous, voila mon probleme...

    Dans mon application, je veux lancer un executable, et attendre que celui ci soit terminé pour que l'application continu son code...
    Je compte utiliser le Shellexecute, si vous avez des suggestions...

    Merci

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Bonjour et bienvenue sur DVP

    peut-être un petit tour dans la FAQ et plus précisément ici pourrait t'être utile

  3. #3
    Membre habitué Avatar de PierreDelcroix
    Profil pro
    Inscrit en
    Février 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 90
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2007
    Messages : 86
    Points : 192
    Points
    192
    Par défaut
    Cette code doit marcher, aussi tout les messages de l'application sont fait.

    Essayez-le.

    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
    46
    47
    48
    49
    50
    51
    52
    53
    function ExecuteWaitFile( ExeFile, Parameters: string): Boolean;
    
      procedure WaitFor(processHandle: THandle);
      var
        AMessage : TMsg;
        Result   : DWORD;
      begin
        repeat
          Result := MsgWaitForMultipleObjects(1,
                                              processHandle,
                                              False,
                                              INFINITE,
                                              QS_PAINT or
                                              QS_SENDMESSAGE);
          if Result = WAIT_FAILED then
            Exit;
          if Result = ( WAIT_OBJECT_0 + 1 ) then
          begin
            while PeekMessage(AMessage, 0, WM_PAINT, WM_PAINT, PM_REMOVE) do
              DispatchMessage(AMessage);
          end;
        until result = WAIT_OBJECT_0;
      end;
    
    var
      ExecuteCommand: array[0 .. 512] of Char;
      StartUpInfo : TStartupInfo;
      ProcessInfo : TProcessInformation;
    begin
      StrPCopy(ExecuteCommand , ExeFile + ' ' + Parameters);
      FillChar(StartUpInfo, SizeOf(StartUpInfo), #0);
      StartUpInfo.cb  := SizeOf(StartUpInfo);
      StartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
      StartUpInfo.wShowWindow := SW_MINIMIZE;
      if CreateProcess(nil,
                       ExecuteCommand,
                       nil,
                       nil,
                       False,
                       CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
                       nil,
                       PChar(ExtractFileDir(ExeFile)),
                       StartUpInfo,
                       ProcessInfo) then
      begin
        WaitFor(ProcessInfo.hProcess);
        CloseHandle(ProcessInfo.hProcess);
        CloseHandle(ProcessInfo.hThread);
        result := true;
      end
      else
        result := false;
    end;

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    merci bcp, j'essaie ca desuite!!!

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Ca marche vreaiment bien, merci a toi.... la joie réillumine mon visage!!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/06/2008, 16h29
  2. Attendre la fin d'un processus en C++
    Par ToMs dans le forum Linux
    Réponses: 3
    Dernier message: 10/07/2006, 08h58
  3. Attendre la fin d'un processus
    Par biaggi dans le forum ASP
    Réponses: 3
    Dernier message: 27/07/2004, 08h39
  4. attendre la fin d'un processus
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 27/02/2004, 15h37
  5. Comment Attendre la fin d'un Processus
    Par mr_titi dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/06/2003, 16h35

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