ShellExecute打开程序为什么SW_HIDE隐藏不了

hanyuwei0 2010-07-06 10:19:53
ShellExecute(m_hWnd, "open", "Agent.exe ", NULL, NULL, SW_HIDE);
Agent.exe 就是一个很普通的对话框程序.我在网上找了各种方法试了都不能隐藏,还是照样显示出来了,头都大了。

请问各位有没有办法能隐藏的,其他函数能隐藏的也行,最好是你测试过确实能用的。谢谢了
...全文
737 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cccvvvttt 2010-07-07
  • 打赏
  • 举报
回复
隐藏不了的,因为在程序运行后程序本身要做一个show的动作来显示程序本身。
hanyuwei0 2010-07-07
  • 打赏
  • 举报
回复
谢谢大家回答,我用5楼的代码试了可以隐藏了
zwfgdlc 2010-07-07
  • 打赏
  • 举报
回复
估计是模态对话框,所以隐藏不了。
CDialog::DoModal ,DialogBox()创建的都是模态对话框.
muzizongheng 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hzy694358 的回复:]

学习了,
不懂
[/Quote]

必须要在dlg的OnInitDialog完成后才能隐藏。 也就是说你传递给程序启动的参数 在dlg的OnInitDialog会忽略掉的。 因此必须自己在调用shell或者createProcess后才能隐藏它, 这个时候就是通过自定义消息了。



有什么不懂的可以继续问。
hzy694358 2010-07-07
  • 打赏
  • 举报
回复
学习了,
不懂
hzy694358 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 muzizongheng 的回复:]
必须要在dlg的OnInitDialog完成后才能隐藏。 也就是说你传递给程序启动的参数 在dlg的OnInitDialog会忽略掉的。 因此必须自己在调用shell或者createProcess后才能隐藏它, 这个时候就是通过自定义消息了。

有什么不懂的可以继续问。
[/Quote]
既然OnInitDialog会忽略掉隐藏的参数
那5楼的方法又是什么原理实现的
Eleven 2010-07-06
  • 打赏
  • 举报
回复
Sorry,上面的代码中
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
这两句可以去掉,没有必要的。。。
Eleven 2010-07-06
  • 打赏
  • 举报
回复 2

TCHAR szDesktop[256] = _T("MyDesktop");
HDESK hDesk = CreateDesktop(szDesktop, NULL, NULL, 0, GENERIC_ALL|DESKTOP_CREATEWINDOW, NULL);
if(hDesk)
{
STARTUPINFO si = {sizeof(si)};
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
si.lpDesktop = szDesktop;
PROCESS_INFORMATION pi = {0};
TCHAR szApp[] = _T("F:\\DEMO.exe");
if(CreateProcess(NULL, szApp, NULL, NULL, FALSE, 0, NULL,NULL, &si, &pi))
{
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
else
{
AfxMessageBox(_T("Failed."));
}
CloseDesktop(hDesk);
}
sanguomi 2010-07-06
  • 打赏
  • 举报
回复
ShellExecute 隐藏不了的
muzizongheng 2010-07-06
  • 打赏
  • 举报
回复
不可以的。 因为是dlg程序, 所以不可以 。 你换文档程序试试就知道了。

解决办法:自己定义个消息了, 做个消息映射。 然后父exe向子的发这个消息, 子的相应这个消息, 然后主动做Show/Hide ()
zwfgdlc 2010-07-06
  • 打赏
  • 举报
回复
ShellExecute(m_hWnd, 

更这样试下
ShellExecute(NULL, 

WaistCoat08 2010-07-06
  • 打赏
  • 举报
回复
这个隐藏属性是传递个启动的程序,但程序内部可能不处理这个属性的。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧