在C#中重定向控制台的问题

时间:2011-08-12 18:14:21

标签: c# console stdout stdin

我在我使用的控制台应用程序上构建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();

1 个答案:

答案 0 :(得分:0)

也许你可以试试:

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

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