如何取得弹出菜单句柄 例如 QQ 上线 下线那个弹出窗口句柄 

解决方案 »

  1.   

    应该要用到系统HOOK,弹出窗口的句柄获取应该比较麻烦!~~ 你在网上搜一些资料,自己调调看
      

  2.   

    究竟是要弹出菜单还是要弹出窗口的句柄啊?
    如果是弹出窗口的句柄,则可以使用SPY查看该窗口的类,然后在VB里使用定时器判断QQ是否启动,如果已启动,则使用 SetWindowsHookEx函数的WH_CBT钩子获得HCBT_CREATEWND事件,在此判断使用GetClassName是不是我们所需要查找的窗口类,如果QQ里有多个与这个弹出对话框相同的窗口类,则还需要使用SetWindowLong进一步HOOK窗口消息,在窗口的WM_CREATE消息里使用GetWindowText获得窗口的标题加以区别,最后别忘了在弹出窗口关闭前还原窗口消息拦截,并在QQ退出前卸载掉窗口钩子。
      

  3.   

    问你是你要获得特定程序的弹出窗口,还是所有程序的弹出窗口,这些弹出窗口一般都会被设置成top_most,你不停得查询最顶层窗口看看吧 
      

  4.   

    Debug.Print GetTopWindow(0) 和 GetNextWindow(660034, GW_HWNDNEXT) 都能获取那个弹出菜单的句柄 但只是获取上一次的句柄 不是这一次的。。
    我想获取 QQ某一个群聊天对话框里 QQ群设置 那个按钮弹出的对话框句柄 里面可以查看群信息。。
      

  5.   

    现在能取得该菜单句柄 好像不能模拟点击哦~ ismenu显示该句柄0
      

  6.   

    使用Sendmessage发送WM_COMMAND消息
      

  7.   

    模拟不来sendmessage
    你就干脆模拟鼠标点击