c#中重定向控制台的问题



我正在构建我使用的控制台应用程序的GUI,我正在尝试使用c# Process和RedirectStandardInput/Error/Output.

问题是当我重定向任何控制台应用程序停止打印数据时,我只重定向了stdin并观察了控制台应用程序窗口本身,什么都没有,我重定向了stdin, out和err,我的程序没有接收到数据。

这是我测试过的唯一一个不能使用Std重定向的应用程序,这是一个实现问题吗?

代码:

fmproc = new Process();
fmproc.StartInfo.FileName = @"fm.exe";
fmproc.StartInfo.Arguments = "";
fmproc.StartInfo.UseShellExecute = false;
fmproc.StartInfo.CreateNoWindow = false;
fmproc.StartInfo.RedirectStandardInput = true;
fmproc.StartInfo.RedirectStandardError = true;
fmproc.StartInfo.RedirectStandardOutput = true;
fmproc.Start();
fmproc.StandardOutput.ReadLine();

也许你可以试试:

fmproc.StandardOutput.ReadToEnd();
fmproc.WaitForExit();

而不是ReadLine();当然,您可能希望对输出字符串做一些更有趣的事情—但我只是遵循您的示例代码。

最新更新