/// <summary> /// Not Completely Implemented /// </summary> /// <param name="processPath"></param> /// <param name="processArguments"></param> /// <param name="startProcess"></param> /// <param name="waitForExit"></param> /// <param name="processDataCapturer"></param> /// <returns></returns> public static Process LaunchExternalProcess(string processPath, string processArguments, bool startProcess, bool waitForExit, IProcessDataCapturer processDataCapturer) { var externalProcess = new Process(); var externalProcessStartInfo = new ProcessStartInfo { Arguments = processArguments, FileName = processPath, RedirectStandardInput = true, RedirectStandardError = true, RedirectStandardOutput = true, CreateNoWindow = true, UseShellExecute = false }; externalProcess.StartInfo = externalProcessStartInfo; if (processDataCapturer != null) { processDataCapturer.Process = externalProcess; } if (startProcess) { externalProcess.Start(); } if (processDataCapturer != null && startProcess) { externalProcess.BeginOutputReadLine(); externalProcess.BeginErrorReadLine(); } if (waitForExit) externalProcess.WaitForExit(); return externalProcess; }
/// <summary> /// Not Completely Implemented /// </summary> /// <param name="processPath"></param> /// <param name="processArguments"></param> /// <param name="startProcess"></param> /// <param name="waitForExit"></param> /// <param name="processDataCapturer"></param> /// <returns></returns> public static Process LaunchExternalProcess(string processPath, string processArguments, bool startProcess, bool waitForExit, IProcessDataCapturer processDataCapturer) { var externalProcess = new Process(); var externalProcessStartInfo = new ProcessStartInfo { Arguments = processArguments, FileName = processPath, RedirectStandardInput = true, RedirectStandardError = true, RedirectStandardOutput = true, CreateNoWindow = true, UseShellExecute = false }; externalProcess.StartInfo = externalProcessStartInfo; if (processDataCapturer != null) { processDataCapturer.Process = externalProcess; } if (startProcess) { externalProcess.Start(); } if (processDataCapturer != null && startProcess) { externalProcess.BeginOutputReadLine(); externalProcess.BeginErrorReadLine(); } if (waitForExit) { externalProcess.WaitForExit(); } return(externalProcess); }
protected override void Establish_That() { _processDataCapturer = Mocker.DynamicMock <IProcessDataCapturer>(); _processDataCapturer.Expect(x => x.Process).PropertyBehavior(); }