Monday, April 27, 2009

Run System Process without showing Command Window and get an output

In this post I would like to show the sample code on how to start a process without showing a console window and get an output result. I am going to use System.Diagnostics.Process class and set parameters to it. Function below will execute a specified command with parameters and return an output on successful run or nothing if there was an error.

using using System.Diagnostics;
...
private static string RunProcess(string command, string parameters)
{
string output = string.Empty;

try
{
Process process = new Process();
process.StartInfo.CreateNoWindow = true; // Don't create command window
process.StartInfo.FileName = command;
process.StartInfo.Arguments = parameters;
process.StartInfo.UseShellExecute = false; // Don't use system shell for execution
process.StartInfo.RedirectStandardOutput = true; // Give us an output
process.StartInfo.RedirectStandardError = true; // Give us an error output
bool r = process.Start();

StreamReader streamReader = process.StandardOutput;
// Read the standard output of the spawned process.
output = streamReader.ReadLine();
if (output == null)
{
StreamReader errorStream = process.StandardError;
string error = errorStream.ReadToEnd();
}
process.Close();
}
catch
{

}

return output;
}


This function can be modified to return an error output in exception or logged into file.

0
Show Comments: OR

0 comments:

Post a Comment