.NET - WindowStyle =hidden与CreateNoWindow = true应该哪一个?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

当我开始一个新的过程时,如果我使用这个过程,会有什么不同?

WindowStyle = hidden

或者

CreateNoWindow = true

ProcessStartInfo类的属性?

提问于
用户回答回答于

WindowStyle是一个传递给流程的建议,应用程序可以选择忽略它。

CreateNoWindow控制控制台如何为子进程工作,但它不能单独工作。

CreateNoWindow与UseShellExecute一起使用,如下所示:

在没有任何窗口的情况下运行进程:

ProcessStartInfo info = new ProcessStartInfo(fileName, arg); 
info.CreateNoWindow = true; 
info.UseShellExecute = false;
Process processChild = Process.Start(info); 

在它自己的窗口中运行子进程(新控制台)

ProcessStartInfo info = new ProcessStartInfo(fileName, arg); 
info.UseShellExecute = true; // which is the default value.
Process processChild = Process.Start(info); // separate window

在父控制台窗口中运行子进程

ProcessStartInfo info = new ProcessStartInfo(fileName, arg); 
info.UseShellExecute = false; // causes consoles to share window 
Process processChild = Process.Start(info); 
用户回答回答于

CreateNoWindow仅适用于控制台模式应用程序,它不会创建控制台窗口。

WindowStyle仅适用于本机Windows GUI应用程序。这是一个传递给此类程序的WinMain()入口点的提示。第四个参数nCmdShow,告诉它如何显示它的主窗口。这与在桌面快捷方式中显示为“运行”设置的提示相同。请注意,“隐藏”不是一种选择,很少有正确设计的Windows程序可以满足该请求。由于这个窥探用户,他不能再让程序被激活,只能用任务管理器杀死它。

扫码关注云+社区