Admin Fondateur
Nombre de messages : 197 Age : 40 Localisation : Tlemcen ( Algérie ) Date d'inscription : 04/12/2006
| Sujet: Comment obtenir le code de sortie de l'application ? Jeu 18 Jan - 16:34 | |
| [url=#codesortieapp]Comment obtenir le code de sortie de l'application ?[/url] Il faut utiliser la fonction GetExitCodeProcess de l'API Win32. Cette fonction demande un handle sur le processus dont on veut le code de sortie, comme celui obtenu par CreateProcess ou OpenProcess par exemple. Attention : Il faut le handle du processus, pas celui de sa fenêtre principale. Exemple avec CreateProcess : - Code:
-
Function RunAndGetExitCode ( Const CommandLine : String ) : LongWord ; Var StartupInfo : TStartupInfo; ProcessInfo : TProcessInformation; Begin FillChar(StartupInfo,SizeOf(StartupInfo),#0); StartupInfo.cb := SizeOf(StartupInfo); If Not CreateProcess( Nil, PChar(CommandLine), Nil, Nil, True, 0, Nil, Nil, StartupInfo, ProcessInfo) Then RaiseLastOSError; // Attente de la fin du processus. WaitForSingleObject(ProcessInfo.hProcess, INFINITE); // Récupération du code de sortie. GetExitCodeProcess(ProcessInfo.hProcess,Result); End; Exemple avec OpenProcess : - Code:
-
Function GetExitCode ( Const PID : LongWord ) : LongWord ; Var hApp : THandle ; ExitCode : LongWord ; Begin hApp:=OpenProcess(PROCESS_QUERY_INFORMATION,False,PID); // Récupération du code de sortie. GetExitCodeProcess(hApp,Result); End; Note : Si le processus est toujours actif, son code de sortie vaut STILL_ACTIVE. Exemple d'application renvoyant un code d'erreur : - Code:
-
Program StopWithExitCode ;
{$APPTYPE CONSOLE}
Begin // Cette instruction arrête le programme proprement, avec un code de sortie. // Par convention, la valeur zéro est utilisée pour indiquer une sortie sans erreur. Halt(3); End. | |
|