首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么ShellExecute() cmd.exe隐藏工作?

为什么ShellExecute() cmd.exe隐藏工作?
EN

Stack Overflow用户
提问于 2015-06-27 05:22:01
回答 1查看 2.3K关注 0票数 2

尝试使用cmd.exe参数执行SW_HIDE时:

代码语言:javascript
复制
ShellExecute(NULL, "open", "cmd.exe", NULL, NULL, SW_HIDE);

cmd.exe实际上是隐藏执行的!我不明白为什么会发生这种情况,cmd.exe的控制台窗口被认为是接受nCmdShow参数的“正常”窗口,还是在执行cmd.exe时看到我传递了nCmdShow参数的SW_HIDE,并决定不显示控制台窗口?

注意:--我在Windows7上尝试了这段代码。

EN

Stack Overflow用户

回答已采纳

发布于 2015-06-27 06:03:07

这意味着cmd.exe在通过ShowWindow显示其窗口时只使用nCmdShow参数到WinMain (或者使用SW_SHOWDEFAULT,这意味着相同的事情),而不首先检查或修改该值。

它没有文档证明它会工作,所以您不应该依赖它,但是这是一个很好的副作用,可以很好地运行批处理脚本,而不会出现可见的窗口。

当然,如果您实际上在一个隐藏的窗口中启动了一个交互式cmd.exe,那么很难让它可见:)

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31085453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档