Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
        }