谁能告诉我如何从 Winforms 应用程序生成另一个控制台应用程序,但 (A) 不在屏幕上显示控制台窗口,并且 (B) 仍然获得应用程序的标准输出?目前我有类似以下内容:
Process SomeProgram = new Process();
SomeProgram.StartInfo.FileName = @"c:\foo.exe";
SomeProgram.StartInfo.Arguments = "bar";
SomeProgram.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
SomeProgram.StartInfo.UseShellExecute = false;
SomeProgram.StartInfo.RedirectStandardOutput = true;
SomeProgram.Start();
SomeProgram.WaitForExit();
string SomeProgramOutput = SomeProgram.StandardOutput.ReadToEnd();
如果我将 RedirectStandardOutput 设置为 false,那么控制台应用程序会按预期隐藏,但我无法获得标准输出文本。但是,只要我将 RedirectStandardOutput 设置为 true,窗口就会停止隐藏,尽管我能够获得程序的输出。
所以,我知道如何让控制台应用程序隐藏运行,并且我知道如何获取程序的输出,但我如何让它同时执行这两项操作?
多次TIA
最佳答案
您缺少在您的情况下必须设置为 true 的 CreateNoWindow 属性。
关于C#:以隐藏方式运行外部控制台程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4430541/