请问有人可以告诉我如何从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,窗口就不再被隐藏了,尽管我能够获取程序的输出。因此,我知道如何使控制台应用程序运行隐藏,也知道如何获取程序的输出,但如何同时做到两者呢?谢谢大家。