2015-06-09 20 views
5

Ho creato un progetto C# che contiene più applicazioni di console. Ora la mia domanda è: È possibile visualizzare più console quando si esegue un'applicazione? se sì, come?Console multiple in un'applicazione singola console

Diciamo, ho un'applicazione di test, che è l'applicazione principale. Ho altre due domande della console dire, ABC e XYZ. Ora, quando eseguo l'applicazione di test, dovrebbe apparire la console di entrambe le applicazioni ABC e XYZ.

Ho scritto il seguente codice:

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

Intendi per scopi di debug? O quando lo si esegue normalmente? – vesan

+0

Eseguendolo normalmente. – Harsh

+0

Si noti che 'GetCurrentDirectory' potrebbe non funzionare come ci si aspetta che funzioni! Vedi questa domanda: http://stackoverflow.com/questions/15653921/get-current-folder-path/15653938#15653938 –

risposta

3

Ecco un rapido esempio di cosa si può fare ... ovviamente, regolare i percorsi a proprio piacimento e ci sono anche altri modi:

in anteprima:

enter image description here

Codice :

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

Questo era un configurazione rapida e molte cose possono essere e devono essere regolate (gestione delle eccezioni, ecc. ecc. ecc.). Dovresti iniziare, però.

+1

Hey Man! Grazie! Funziona alla grande! – Harsh

+0

@ B.K. wow, quale programma hai usato per creare quel video? – Luther

+0

@Luther Ci sono molte app che catturano schermate che creano gif. Uso LICEcap (http://www.cockos.com/licecap/), Screen To Gif (https://screentogif.codeplex.com/) e Gyazo (https://gyazo.com/). Ognuno ha pro e contro. –

1

è possibile avviare un altro processo utilizzando la chiamata Process.Start(). Date un'occhiata here per esempi

+0

Ho provato a utilizzare l'opzione suggerita, ma non funziona. – Harsh

+1

@Harsh: quindi inserisci del codice in modo che possiamo capire perché non funziona. – vesan

+0

Voglio dire, voglio che compaia la console di entrambe le applicazioni ABC e XYZ quando eseguo l'applicazione di test. – Harsh

0

Sì, è possibile.

ProcessStartInfo consente di acquisire l'output della console.

Probabilmente stai cercando questo: Redirect standard output. Nota, devi anche reindirizzare l'errore standard.