社区
进程/线程/DLL
帖子详情
如何获取其它程序弹出的对话框,将其关闭
myrou
2006-04-06 11:40:42
现有一程序,将会调用多个DLL,在DLL调用中,有可能会弹出对话框提示窗口,因此程序为后台自动运行,应如何才能捕获弹出的提示窗口,将其关闭或者触发“确定”单击事件?
...全文
324
7
打赏
收藏
如何获取其它程序弹出的对话框,将其关闭
现有一程序,将会调用多个DLL,在DLL调用中,有可能会弹出对话框提示窗口,因此程序为后台自动运行,应如何才能捕获弹出的提示窗口,将其关闭或者触发“确定”单击事件?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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查找窗口
倒计时1分钟
对话框
自动
关闭
自己编写的定时器小
程序
,执行后出现
对话框
,显示文字“1分钟倒计时后,你的电脑将自动删除硬盘上的一切资料,然后关机!\n现在开始倒计时:还有%d秒……”,文字可以自己修改,实际并未加入恶意
程序
,搞怪的。倒计时1分钟后,
对话框
自动
关闭
,
程序
结束。对计时器感兴趣的朋友可以参考下我的代码。编译环境:VS2010,语言:C++/MFC。
mfc
对话框
程序
退出
弹出
确认
对话框
mfc
对话框
程序
退出
弹出
确认
对话框
,最简单的范例,没有多余代码,就是相应了ON_WM_CLOSE()消息
动态
弹出
、
关闭
对话框
.rar
如何动态地
弹出
、
关闭
对话框
,这个代码提供了很好的一个思路,从中可以得到很大的启发。对于VC初学者来说,这是个相当困难的,研究这个代码对初学者来说有很大的帮助。
弹出
对话框
插件MiniDialog.zip
MiniDialog
对话框
功能丰富、使用简单、灵活多样、体积轻巧的无任何第三方依赖的 JavaScript
对话框
组件。 源代码说明 MiniDialog 的原始开发版
程序
采用基于 es6 标准的 JavaScript 编写,如果需要兼容 IE11 浏览器,需要将其转换成 es5 格式,作者已提供了经过 Babel 转换之后的
程序
,请前往 dist 目录下查看,该目录下的三个文件分别是基于 es6 的原始未压缩版以及转换成 es5 格式的未压缩和已压缩版,请根据实际需求选择使用。 代码示例: 四种信息提示
对话框
快捷方式 常规配置 自定义内容背景色 可拖动的
对话框
全屏
对话框
自动
关闭
嵌入Iframe 嵌入图片 嵌入多张图片 嵌入视频 确定按钮-加载中 按钮事件 开关事件
delphi 实现延时自动
关闭
对话框
20200407.Demo_DlgAutoClose.zip
delphi7代码编辑运行环境下,Delphi Messagebox自动
关闭
功能演示代码,以及可运行
程序
,无须任何.net编译平台,windows下原生
程序
。 使用方法:打开
对话框
前调用 SetDlgAutoClose { 参数1: 设定多长时间后
关闭
} { 参数2: 是否在
对话框
标题栏进行倒计时提示 } 代码包括了一个功能类,也就是unt_TimerDlg单元,主
程序
可以调用两种方法,实现不同效果。这种可自动
关闭
的
对话框
,适合各种管理系统or监控
程序
的提醒告知功能。 欢迎csdn好友下载,交流分享
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章