OVH Cloud OVH Cloud

GetExitCodeProcess : quelle déclaration, quel paramètre ?

1 réponse
Avatar
Damien
bonjour,
J'ai un soucis pour récupérer le code retour d'un process qui se termine par
le biais de la méthode GetExitCodeProcess.

Mes déclarations :
---------------------
[DllImport("coredll.Dll")]
private static extern int CreateProcess(string strImageName, string
strCmdLine, IntPtr pProcessAttributes, IntPtr pThreadAttributes , int
bInheritsHandle, int dwCreationFlags, IntPtr pEnvironment, IntPtr
pCurrentDir, Byte[] bArray, cProcess oProc);
[DllImport("coredll.Dll")]
private static extern bool GetExitCodeProcess(uint hProcess, ref uint
lpExitCode);
[DllImport("coredll.Dll")]
private static extern int WaitForSingleObject(uint hHandle, int
dwMilliseconds );
public class cProcess
{
public uint hProcess;
public uint hThread;
public int dwProcessId;
public int dwThreadId;
}

Mon code :
-------------
cProcess oLocal_pi ;
oLocal_pi= new cProcess();

iLocal_Retour=CreateProcess("monexe.exe", sPar_CommandLine, IntPtr.Zero,
IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, new Byte[128], oLocal_pi);
iLocal_Retour2=WaitForSingleObject(oLocal_pi.hProcess,-1);
iLocal_Retour = GetExitCodeProcess (oLocal_pi.hProcess, ref iLocal_Retour1) ;

Quel est le paramètre à passer à "GetExitCodeProcess" ?
oLocal_pi.hProcess, oLocal_pi.hThread, oLocal_pi.dwProcessId ou
oLocal_pi.dwThreadId ?

Je dois dire que je m'y perd un peu, ayant tout essayé et retrouvant toujours
"0" dans ma variable iLocal_Retour1

Merco

1 réponse

Avatar
fduhem
using System.Diagnostics;

Process toto = Process.Start( ... )
int exitCode = toto.ExitCode;