2015-06-09 2 views
5

Я создал проект C#, в котором есть несколько консольных приложений. Теперь мой вопрос: Можно ли отображать несколько консолей при запуске одного приложения? если да, как?Несколько консолей в одном консольном приложении

Допустим, у меня есть тестовое приложение, которое является основным приложением. У меня есть еще два консольных приложения: ABC и XYZ. Теперь, когда я запускаю тестовое приложение, появится консоль обоих приложений ABC и XYZ.

Я написал следующий код:

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(); 
} 
+0

Вы хотите сказать, что для целей отладки? Или при нормальной работе? – vesan

+0

Выполнять это нормально. – Harsh

+0

Обратите внимание: функция 'GetCurrentDirectory' может работать не так, как вы ожидаете, что она будет работать! См. Этот вопрос: http://stackoverflow.com/questions/15653921/get-current-folder-path/15653938#15653938 –

ответ

3

Вот краткий пример того, что может быть сделано ... Очевидно, изменить пути по своему вкусу, и есть несколько других способов:

Preview:

enter image description here

Код :

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(); 

Это был быстрая настройка, и многие вещи могут быть и должны быть скорректированы (обработка исключений и т. д. и т. д. и т. д.). Однако вы должны начать.

+1

Эй, парень! Благодаря! Он отлично работает! – Harsh

+0

@ B.K. wow, какую программу вы использовали для создания этого видеоклипа? – Luther

+0

@Luther Существует множество приложений для захвата экрана, которые создают gif. Я использую LICEcap (http://www.cockos.com/licecap/), Screen To Gif (https://screentogif.codeplex.com/) и Gyazo (https://gyazo.com/). У каждого есть плюсы и минусы. –

1

Вы можете начать другой процесс с помощью вызова Process.Start(). Посмотрите here для примеров

+0

Я попытался использовать предложенную вами опцию, но ее не работает. – Harsh

+1

@Harsh: Затем опубликуйте код, чтобы мы могли понять, почему он не работает. – vesan

+0

Я имею в виду, я хочу, чтобы консоль обоих приложений ABC и XYZ появлялась, когда я запускаю тестовое приложение. – Harsh

0

Да, вы можете.

ProcessStartInfo позволяет записывать вывод консоли.

Возможно, вы ищете: Redirect standard output. Обратите внимание, что вы также должны перенаправить стандартную ошибку.

Смежные вопросы