读书人

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

发布时间: 2012-01-14 20:02:35 作者: rapoo

怎样自动关闭其它程序弹出的对话框?
需求:检查桌面上有无弹出的对话框,如果一个对话框已经弹出若干时间(比如20秒)而没有关闭,就把它关掉。
使用vbscript或vb.net,也可以调用windows API。

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

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

盼解答。

[解决办法]
取得句柄就可关闭
iRet = PostMessage(hwnd, WM_CLOSE, 0, 0&) '关闭

遍历桌面上所有的对话框,不如直接判断窗口句柄......
[解决办法]
1,遍历桌面上所有的对话框用EnumWindows加上用GetWindowLong判断是否存在WM_EX_DLGMODALFRAME模式,不知是否可以
[解决办法]
如果是模式对话框,怎么遍历?
[解决办法]
我觉得还是Hook到生成消息对话框的消息,生成了消息对话框就开始计时,20秒后发送关闭消息给它就是了。问题的关键在于生成消息提示框的消息类型是什么,知道了消息类型,就能完成这个功能。

读书人网 >VB

热点推荐