コード例 #1
0
ファイル: ProcessUtility.cs プロジェクト: kyle-herzog/nModule
 /// <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);
        }
コード例 #3
0
 protected override void Establish_That()
 {
     _processDataCapturer = Mocker.DynamicMock <IProcessDataCapturer>();
     _processDataCapturer.Expect(x => x.Process).PropertyBehavior();
 }