尝试使用SW_HIDE
参数执行cmd.exe时:
ShellExecute(NULL, "open", "cmd.exe", NULL, NULL, SW_HIDE);
cmd.exe实际上是隐藏执行的!我不明白为什么会发生这种情况,cmd.exe的控制台窗口是否被视为"正常"接受nCmdShow
参数的窗口,或执行cmd.exe时看到我为SW_HIDE
参数传递nCmdShow
并决定不显示控制台窗口?
注意:我在Windows 7上尝试过此代码。
答案 0 :(得分:1)
这意味着cmd.exe
只是nCmdShow
使用WinMain
参数{或者SW_SHOWDEFAULT
使用ShowWindow
,这意味着相同的事情)通过{{显示其窗口时1}},不先检查或修改值。
没有记录它会起作用,所以你不应该依赖它,但这是一个很好的副作用,可以很好地运行批处理脚本而不会出现可见的窗口。
当然,如果您实际在隐藏窗口中启动交互式cmd.exe
,则很难将其显示为可见:)