Start a console application:
System.Diagnostics.Process aspProcess = null;
private void start_console_app()
string pathToExe = @"<<Path to the exe >> ";
if (aspProcess == null)
aspProcess = new System.Diagnostics.Process();
//Path and file name of command to run
aspProcess.StartInfo.FileName = pathToExe;
aspProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
//Parameters to pass to program
aspProcess.StartInfo.Arguments = "<<arguments you want to pass>>";
aspProcess.StartInfo.UseShellExecute = true;
aspProcess.StartInfo.CreateNoWindow = true;
//Start the process
//Wait for process to finish
aspProcess = null;
catch (Exception ex)
1. For starting a console application, you would need to create an object of class "System.Diagnostics.Process".
2. "FileName" is the path of the exe (console application).
3. "Arguments" - It will send arguments to your console application.
4. ProcessWindowStyle.Hidden will hide the console window.
5. Start () method will start the process.
Stop a console application by sending "Control + C" Signal:
public void stop_console_app()
// Release the current console, as you cannot attach 2 consoles at the same time
if (aspProcess != null)
uint pid = (uint)aspProcess.Id;
// This does not require the console window to be visible.
// Disable Ctrl-C handling for our program
// Must wait here. If we don't and re-enable Ctrl-C
// handling below too fast, we might terminate ourselves.
// Re-enable Ctrl-C handling or any subsequently started
// programs will inherit the disabled state.
You can add "Console_CancelKeyPress" event in your console application to nicely terminate it. If you want to call this method from another application (from where you've started your console application), add the above method.