0

这是一些您可以运行的真实代码。当您这样做时,您会注意到 5 个控制台窗口快速弹出并消失。

如何在不弹出这些窗口的情况下重定向标准输出/错误?我尝试了几件事,但到目前为止都失败了。对于我的实际使用,我需要争论并重定向标准输入,但这不应该影响解决方案。

    [STAThread]
    static void Main()
    {
        for(int i=0;i<5;i++)
        {
            var process = new System.Diagnostics.Process();
            process.StartInfo.FileName = @"C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe";
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardError = true;
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //doesnt seem to have an effect
            process.Start();
            process.WaitForExit();
            var resO = process.StandardOutput.ReadToEnd();
            var resE = process.StandardError.ReadToEnd();
        }
    }
4

1 回答 1

1

您应该尝试设置CreateNoWindowtrue

process.StartInfo.CreateNoWindow = true;
于 2012-08-11T20:33:01.710 回答