社区
进程/线程/DLL
帖子详情
如何获取其它程序弹出的对话框,将其关闭
myrou
2006-04-06 11:40:42
现有一程序,将会调用多个DLL,在DLL调用中,有可能会弹出对话框提示窗口,因此程序为后台自动运行,应如何才能捕获弹出的提示窗口,将其关闭或者触发“确定”单击事件?
...全文
349
7
打赏
收藏
如何获取其它程序弹出的对话框,将其关闭
现有一程序,将会调用多个DLL,在DLL调用中,有可能会弹出对话框提示窗口,因此程序为后台自动运行,应如何才能捕获弹出的提示窗口,将其关闭或者触发“确定”单击事件?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
coolge2005
2006-04-06
打赏
举报
回复
这样就可以用商业的控件了!!
myrou
2006-04-06
打赏
举报
回复
好,试试,谢谢
dirdirdir3
2006-04-06
打赏
举报
回复
hook了messageboxa,不让其弹出来就可以了。
huaboy408
2006-04-06
打赏
举报
回复
FindWindow查找窗口
FindWindowEx查找窗口内控件
baqiao1211
2006-04-06
打赏
举报
回复
hwnd=findwindow(...);
PostMessage(hwnd,WM_CLOSe,0,0);
Steven7
2006-04-06
打赏
举报
回复
获取对话框的title,直接close,或者进入获取其中的按钮,然后发click消息
具体技术细节参考我的经验总结:
6、对系统中其他窗口的操作
(1) SetFocus();//Dlg类中,窗口得到焦点
CenterWindow();//Dlg类中,窗口居中
CWnd* pPrevWnd = CWnd::FindWindow(NULL,"CashFiesta"); //定位到某个窗口
char strWin[80];
pPrevWnd->GetWindowText(strWin,60);//得到窗口标题
pPrevWnd->MessageBox (strWin);//显示得到的窗口标题
if (strcmp(strWin,"CashFiesta")==0)//如果窗口标题是 CashFiesta 则 //这个语句有问题改用下面一个
if (pPrevWnd!=NULL)//如果确实有窗口标题是 CashFiesta的,则
pPrevWnd->MoveWindow(747,757,280,80,TRUE);//移动窗口到x=747,y=757, 宽度=280,高度=80,重绘
pPrevWnd->SendMessage(WM_CLOSE);//关闭窗口
if (pPrevWnd->IsIconic())//如果窗口已经最小化
pPrevWnd->ShowWindow(SW_RESTORE);//显示窗口,恢复
/* 依次得到所有窗口
CWnd* pPrevWnd = CWnd::FindWindow(NULL,NULL);
while (pPrevWnd)
{
pPrevWnd = pPrevWnd->GetWindow(GW_HWNDNEXT);
}
*/
(2) CWnd* pPrevWndL = CWnd::FindWindow(NULL,"CashFiesta Login");
HWND handMain=::FindWindowEx(NULL,NULL,NULL,_T("CashFiesta Login"));
这两个语句都是找到窗口 "CashFiesta Login",可以共存在一个代码段中,只是返回值的类型不同,便于不同应用,
FindWindowEx也可以用于查找窗口中的控件,例如:
HWND hwnd1=::FindWindowEx(handMain,NULL,_T("EditBar"),NULL);//查找定位到窗口 "CashFiesta Login"中的第一个EditBar控件(实际没有EditBar,只是用来说明如何取一个控件内部的控件)
HWND hwnd2=::FindWindowEx(hwnd1,NULL,_T("Edit"),NULL);//查找定位到窗口 "CashFiesta Login"中的第一个EditBar控件中的EDIT控件
7、向另外的程序窗口中的控件发消息
HWND handMain=::FindWindowEx(NULL,NULL,NULL,_T("CashFiesta Login"));//CashFiesta Login是其他程序的窗口标题
if(handMain )//如果有那样的一个窗口打开
{
HWND hwndEdit=::FindWindowEx(handMain,NULL,_T("Edit"),NULL);
HWND hwndButton=::FindWindowEx(handMain,NULL,_T("Button"),_T("OK"));
if (hwndEdit)
{
char sz[255];
strcpy(sz,"StevenMzq");
::SendMessage(hwnd2,WM_SETTEXT,255,(long)sz);//向Edit控件中加入字符串 StevenMzq
::SendMessage(hwnd2,WM_GETTEXT,255,(long)sz);//将Edit控件中的内容存入字符串 sz
}
if (hwndButton)
{
::SendMessage(handMain,WM_COMMAND,1,(long)hwndButton);//模拟向button击键--重要!!
上面语句有时并不能实现模拟向button击键,用下面两行语句
int nButtonID=::GetDlgCtrlID(hwndButton);//由 Button的句柄得到其ID
::SendMessage(handMain,WM_COMMAND,nButtonID,0);//模拟向button击键
char sz[255];
strcpy(sz,"StevenMzq");
::SendMessage(hwnd2,WM_SETTEXT,255,(long)sz);//将Button控件的标题改为字符串 StevenMzq
::SendMessage(hwnd2,WM_GETTEXT,255,(long)sz);//将Button控件的标题存入字符串 sz
}
oyljerry
2006-04-06
打赏
举报
回复
或FindWindow查找窗口
VC++如何
弹出
对话框
Dialog
- 在需要
弹出
对话框
的地方,创建
对话框
对象,然后调用`DoModal()`方法。如果`DoModal()`返回IDOK(通常是用户点击了“确定”按钮),则表示用户完成了对话;如果是IDCANCEL(“取消”按钮),则表示用户终止了对话...
mfc
对话框
程序
退出
弹出
确认
对话框
当你想要在用户尝试
关闭
对话框
时
弹出
一个确认
对话框
,以确保他们确实想要退出,你可以通过处理`ON_WM_CLOSE()`消息来实现这一功能。这个消息在用户尝试
关闭
窗口(例如点击窗口的
关闭
按钮)时被触发。 首先,我们...
倒计时1分钟
对话框
自动
关闭
自己编写的定时器小
程序
,执行后出现
对话框
,显示文字“1分钟倒计时后,你的电脑将自动删除硬盘上的一切资料,然后关机!\n现在开始倒计时:还有%d秒……”,文字可以自己修改,实际并未加入恶意
程序
,搞怪的。倒计时...
动态
弹出
、
关闭
对话框
.rar
-
弹出
对话框
通常通过消息响应或者成员函数实现,如`OnButtonClick()`,在这个函数中调用`ShowWindow(SW_SHOW)`显示
对话框
。 3. **
关闭
对话框
**: - 用户点击“确定”、“取消”等按钮时,
对话框
会发送`WM_...
用Delphi编写的消息
对话框
的自动
关闭
- 如果需要在
对话框
关闭
时禁用计时器,可以在窗体的`OnClose`事件中处理,例如`Timer1.Enabled := False;`。 5. **使用自定义
对话框
**:在主
程序
中,实例化`TAutoCloseMsgBox`,设置其属性(如消息文本、图标等)...
进程/线程/DLL
15,467
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章