private static ProcessStartResult CreateProcessStartResult(bool waitForExit, uint waitTimeout, ProcessInformation processInfo, bool started) { uint exitCode = 0; var hasExited = false; if (started && waitForExit) { var waitResult = Win32Api.WaitForSingleObject(processInfo.Process, waitTimeout); if (waitResult == WaitForSingleObjectResult.WAIT_OBJECT_0) { Win32Api.GetExitCodeProcess(processInfo.Process, ref exitCode); hasExited = true; } } var result = new ProcessStartResult() { ExitCode = (int)exitCode, Started = started, HasExited = hasExited, ProcessId = processInfo.ProcessId }; return(result); }
private static ProcessStartResult CreateProcessStartResult(bool waitForExit, uint waitTimeout, ProcessInformation processInfo, bool started) { uint exitCode = 0; var hasExited = false; if (started && waitForExit) { var waitResult = Win32Api.WaitForSingleObject(processInfo.Process, waitTimeout); if (waitResult == WaitForSingleObjectResult.WAIT_OBJECT_0) { Win32Api.GetExitCodeProcess(processInfo.Process, ref exitCode); hasExited = true; } } var result = new ProcessStartResult() { ExitCode = (int) exitCode, Started = started, HasExited = hasExited, ProcessId = processInfo.ProcessId }; return result; }