我在我使用的控制台应用程序上构建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();
答案 0 :(得分:0)
也许你可以试试:
fmproc.StandardOutput.ReadToEnd();
fmproc.WaitForExit();
而不是ReadLine();当然,您可能希望使用输出字符串做一些更有趣的事情 - 但我只是关注您的示例代码。