using System.Diagnostics; Process proc = new Process(); proc.StartInfo.FileName = "someapp.exe"; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardError = true; // Start the process if (proc.Start()) { // Asynchronously read from error stream proc.BeginErrorReadLine(); // Read standard output synchronously Console.WriteLine(proc.StandardOutput.ReadToEnd()); } // Wait for process to exit proc.WaitForExit();
using System.Diagnostics; using System.IO; ProcessStartInfo procStartInfo = new ProcessStartInfo("someapp.exe"); procStartInfo.RedirectStandardOutput = true; procStartInfo.RedirectStandardError = true; procStartInfo.UseShellExecute = false; procStartInfo.CreateNoWindow = true; Process proc = new Process(); proc.StartInfo = procStartInfo; proc.Start(); StreamWriter outputStream = new StreamWriter("output.txt"); StreamWriter errorStream = new StreamWriter("error.txt"); proc.OutputDataReceived += (s, e) => outputStream.WriteLine(e.Data); proc.ErrorDataReceived += (s, e) => errorStream.WriteLine(e.Data); proc.BeginOutputReadLine(); proc.BeginErrorReadLine(); proc.WaitForExit(); outputStream.Close(); errorStream.Close();The package library for System.Diagnostics.Process is part of the .NET Framework Class Library.