0

C++ コンソールの出力を C# Windows フォーム アプリケーションに取得しようとしています。問題は、C++ exe の出力が C# コンソールに表示されるのは、C++ exe が終了した後であることです。C++ exeの実行中にリアルタイムでexe出力をC#コンソールに取得する方法はありますか(exeを終了する必要はありません)? これが私が試した方法です、

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

ありがとう、

4

2 に答える 2

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();
于 2012-02-04T08:09:05.960 に答える
0

Console.SetIn() (および SetOut) およびProcess.StandardOutputを参照してください。

于 2012-02-04T08:04:19.930 に答える