需求:检查桌面上有无弹出的对话框,如果一个对话框已经弹出若干时间(比如20秒)而没有关闭,就把它关掉。
使用vbscript或vb.net,也可以调用windows API。我的思路是:遍历桌面上所有的对话框,把句柄和时间保存到变量中,如果发现该句柄在20秒前已经保存过,则发送消息把该对话框关掉。现在就是不知道怎样实现:
1、遍历桌面上所有的对话框
2、发送消息关闭对话框盼解答。

解决方案 »

  1.   

    取得句柄就可关闭
    iRet = PostMessage(hwnd, WM_CLOSE, 0, 0&)   '关闭遍历桌面上所有的对话框,不如直接判断窗口句柄......
      

  2.   

    1,遍历桌面上所有的对话框用EnumWindows加上用GetWindowLong判断是否存在WM_EX_DLGMODALFRAME模式,不知是否可以
      

  3.   

    我觉得还是Hook到生成消息对话框的消息,生成了消息对话框就开始计时,20秒后发送关闭消息给它就是了。问题的关键在于生成消息提示框的消息类型是什么,知道了消息类型,就能完成这个功能。