Process.Start 使用 UseShellExecute false 和 RedirectStandardOutput 创建 window
Process.Start creates window with UseShellExecute false and RedirectStandardOutput
所以我遇到了问题,即 Process.Start
总是显示 window,即使我有属性 CreateNoWindow = true
、UseShellExecute = false
和 RedirectStandardOuput = 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?
所以我遇到了问题,即 Process.Start
总是显示 window,即使我有属性 CreateNoWindow = true
、UseShellExecute = false
和 RedirectStandardOuput = 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?