如果说ProcessWindowStyle.Hidden需要UseShellExecute = false,msdn是错的吗?

时间:2016-04-25 06:20:46

标签: c#

是msdn错误,当它说要使用ProcessWindowStyle.Hidden时,ProcessStartInfo.UseShellExecute属性必须为false?

https://msdn.microsoft.com/en-us/library/system.diagnostics.processwindowstyle(v=vs.110).aspx

enter image description here

首先,它不是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时出错了。

0 个答案:

没有答案