Process.Start使用UseShellExecute false和RedirectStandardOutput创建窗口

时间:2016-01-26 15:02:15

标签: c# cmd process.start

所以我遇到了问题,Process.Start始终显示一个窗口,即使我有属性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();
}

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

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