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.