是msdn错误,当它说要使用ProcessWindowStyle.Hidden时,ProcessStartInfo.UseShellExecute属性必须为false?
https://msdn.microsoft.com/en-us/library/system.diagnostics.processwindowstyle(v=vs.110).aspx
首先,它不是ProcessStartInfo.UseShellExecute,它是ProcessStartInfo点的一个实例,只是UseShellExecute而是旁边。
其次,最重要的是。我发现情况正好相反
如果我创建例如一个winforms应用程序,使用此代码然后出现一个cmd窗口
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "cmd.exe";
psi.UseShellExecute = false;
psi.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(psi);
如果我这样做
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "cmd.exe";
psi.UseShellExecute = true; //default
psi.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(psi);
然后cmd窗口不会出现。
所以似乎ProcessWindowStyle.Hidden要求UseShellExecute为true / default。不是假的。完全与msdn所说的相反。
msdn的文档是完全错误的,还是我误解了它?
此外,这里的答案.NET - WindowStyle = hidden vs. CreateNoWindow = true?支持我在UseShellExecute = false时发现CreateNoWindow的用途,而当UseShellExecute = true时默认使用psi.WindowStyle = ProcessWindowStyle.Hidden(默认值)。 Msdn为CreateNoWindow指出了这一点,但msdn似乎是在使用ProcessWindowStyle.Hidden时出错了。