加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.net – ProcessStartInfo的UseShellExecute和CreateNoWindow有

发布时间:2020-12-14 03:51:34 所属栏目:Windows 来源:网络整理
导读:如果我要编写一个控制台应用程序来启动另一个控制台应用程序作为新进程,并使用默认的“Use ShellExecute”和“CreateNoWindow”值,结果是控制台应用程序窗口旁边会出现一个新的命令行窗口: UseShellExecute=true and CreateNoWindow=false 现在,如果我要使
如果我要编写一个控制台应用程序来启动另一个控制台应用程序作为新进程,并使用默认的“Use ShellExecute”和“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来启动该程序
>您启动的程序是控制台模式应用程序.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读