怎样自动关闭其它程序弹出的对话框?

MountLion 2010-03-11 11:46:36
需求:检查桌面上有无弹出的对话框,如果一个对话框已经弹出若干时间(比如20秒)而没有关闭,就把它关掉。
使用vbscript或vb.net,也可以调用windows API。

我的思路是:遍历桌面上所有的对话框,把句柄和时间保存到变量中,如果发现该句柄在20秒前已经保存过,则发送消息把该对话框关掉。

现在就是不知道怎样实现:
1、遍历桌面上所有的对话框
2、发送消息关闭对话框

盼解答。
...全文
161 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcrun 2010-03-11
  • 打赏
  • 举报
回复
1,遍历桌面上所有的对话框用EnumWindows加上用GetWindowLong判断是否存在WM_EX_DLGMODALFRAME模式,不知是否可以
孤独剑_LPZ 2010-03-11
  • 打赏
  • 举报
回复
取得句柄就可关闭
iRet = PostMessage(hwnd, WM_CLOSE, 0, 0&) '关闭

遍历桌面上所有的对话框,不如直接判断窗口句柄......
贝隆 2010-03-11
  • 打赏
  • 举报
回复
我觉得还是Hook到生成消息对话框的消息,生成了消息对话框就开始计时,20秒后发送关闭消息给它就是了。问题的关键在于生成消息提示框的消息类型是什么,知道了消息类型,就能完成这个功能。
东方之珠 2010-03-11
  • 打赏
  • 举报
回复
如果是模式对话框,怎么遍历?

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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