gpt4 book ai didi

.net - ProcessStartInfo 的 UseShellExecute 和 CreateNoWindow 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 01:10:26 28 4
gpt4 key购买 nike

如果我编写一个控制台应用程序,将另一个控制台应用程序作为一个新进程启动,并使用默认的“UseShellExecute”和“CreateNoWindow”值,结果是控制台应用程序窗口旁边会出现一个新的命令行窗口:

   UseShellExecute=true and CreateNoWindow=false

现在,如果我要使用以下内容,则不会创建新窗口,但已启动进程的输出将出现在启动它的应用程序的窗口中:
   UseShellExecute=false and CreateNoWindow=false

如果我要使用以下内容,则既不会创建新窗口,也不会在启动它的应用程序的窗口中显示已启动进程的输出:
   UseShellExecute=false and CreateNoWindow=true

但是好像UseShellExecute=true时“CreateNoWindow”没有作用,那么UseShellExecute=true时“CreateNoWindow”起到什么作用呢?仅当作为新进程启动的应用程序是 Forms 应用程序时才适用吗?

最佳答案

它没有任何作用。规则是 CreateNoWindow 仅在以下情况下有效:

  • 您使用 UseShellExecute = false 以便使用 CreateProcess() winapi 来启动程序
  • 您启动的程序是一个控制台模式的应用程序。

  • 如果应用程序是创建自己的窗口的 native Windows GUI 应用程序,那么您可以要求它不使用 WindowStyle = ProcessWindowStyle.Hidden 创建可见窗口。然而,有很多程序忽略了这个请求。他们应该,阻止它的唯一方法是通过任务管理器。下一个合理的选择是 ProcessWindowStyle.Minimized

    关于.net - ProcessStartInfo 的 UseShellExecute 和 CreateNoWindow 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15733086/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com