2012-02-04 20 views
0

C#コンソールの出力をC#Windowsフォームアプリケーションに取得しようとしていますが、C++のexe出力はC++ exeが終了します。とにかくexe出力をC#exeを実行している間にリアルタイムでC#コンソールに出力する(exeを終了させることなく)ここで は、私が試した方法C#コンソール出力をC#にリダイレクトする

Process p = new Process(); 
p.StartInfo.UseShellExecute = false; 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.FileName = "C:\\path\\ABC.exe"; 
p.Start(); 
string output = p.StandardOutput.ReadToEnd(); 
Console.WriteLine(output); 

おかげで、

答えて

1

使用OutputDataReceivedイベントです:

Process p = new Process(); 
p.StartInfo.UseShellExecute = false; 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.FileName = "C:\\path\\ABC.exe"; 
p.OutputDataReceived += (s, e) => Console.WriteLine(e.Data); 
p.Start(); 
p.BeginOutputReadLine(); 
+0

ああ、私の答えはまったく同じでしたしかし、私は遅すぎた。 – Bazurbat

+0

ありがとう、それはOutputDataReceivedでうまく動作します。しかし、出力をC#consoleにするとパフォーマンスはかなり低下しますが、それは確かです。 – Anshu

関連する問題