Reputation: 193
I have created a C# Project which has multiple console applications in it. Now my question is: Is it possible to display multiple consoles when I run one application? if yes, how?
Lets say, I have a Test Application, which is the main application. I have another two Console applications say, ABC
and XYZ
. Now, when i run the Test Application, the console of both applications ABC and XYZ should appear.
I have written the following code:
Console.WriteLine("\n\t Calling EXE...");
Process myProcess = new Process();
string Exepath = System.IO.Directory.GetCurrentDirectory() + "\\exe\\ABCApplication.exe";
try
{
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = Exepath;
myProcess.StartInfo.CreateNoWindow = false;
myProcess.Start();
}
catch (Exception ex)
{
CreateLogFile();
}
Upvotes: 15
Views: 23702
Reputation: 10172
Here's a quick example of what can be done... obviously, adjust paths to your liking and there are a few other ways:
Preview:
Code:
using (var process1 = new Process())
{
process1.StartInfo.FileName = @"..\..\..\ConsoleApp1\bin\Debug\ConsoleApp1.exe";
process1.Start();
}
using (var process2 = new Process())
{
process2.StartInfo.FileName = @"..\..\..\ConsoleApp2\bin\Debug\ConsoleApp2.exe";
process2.Start();
}
Console.WriteLine("MainApp");
Console.ReadKey();
This was a quick setup and many things can be and should be adjusted (exception handling, etc., etc., etc.). It should get you started, though.
Upvotes: 11
Reputation: 1563
You can start another process using the Process.Start() call. Take a look here for examples
Upvotes: 1
Reputation: 31146
Yes you can.
ProcessStartInfo
allows you to capture console output.
You're probably looking for this: Redirect standard output. Note you should also redirect standard error.
Upvotes: 0