Process.Start 使用 UseShellExecute false 和 RedirectStandardOutput 创建 window

Process.Start creates window with UseShellExecute false and RedirectStandardOutput

所以我遇到了问题,即 Process.Start 总是显示 window,即使我有属性 CreateNoWindow = trueUseShellExecute = falseRedirectStandardOuput = true。在所有教程和如何访问网站上,他们都说这就是做到这一点的方法。那我在这里想念什么?

public static void StartExporter(string part, string path)
{
    var startInfo = new ProcessStartInfo();
    startInfo.WindowStyle = ProcessWindowStyle.Hidden;
    startInfo.CreateNoWindow = true;
    startInfo.Verb = "runas";
    startInfo.UseShellExecute = false;
    startInfo.RedirectStandardOutput = true;
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = "/k PartInfoExporter " + part + " " + path;
    var process = Process.Start(startInfo);
    process.WaitForExit();
}

感谢您的帮助

cmd.exe 的工作方式相当复杂(根据 Raymond Chen 的说法,它实际上是一个虚拟机)。为什么不跳过它,直接调用PartInfoExporter.exe?