用钩子擒获到了消息,得到了hwnd,却不能知道这个消息是发给哪个窗口的,这很让人郁闷 o(-")o

用钩子捕获到了消息,得到了hwnd,却不能知道这个消息是发给哪个窗口的,这很让人郁闷 o(-"-)o
全局钩子,进程间内存共享问题倒是好解决。可是同一个窗口的句柄又是不同的,所以从全局钩子捉到的句柄对钩子使用者来说毫无意义?没什么好的办法吗?眼看着消息句柄从眼皮底下溜过,就不能知道它是发给哪个窗口的吗?
------解决方案--------------------
“可是同一个窗口的句柄又是不同的”,你的窗口可以得到多个句柄?
------解决方案--------------------
引用:
窗口句柄是全局的。和process id 整个系统唯一


哦,可能说错了,window handle至少在当前session中是唯一的
------解决方案--------------------
窗口句柄是可以直接跨进程的

内核对象的句柄如事件、互斥量、文件句柄等是不能简简单单跨进程的,需要转换
------解决方案--------------------
楼主的问题我以前做过类似的,不过现在手头没有代码。提供一个方法供楼主参考。
1、枚举出当前执行的所有窗口,记得好像是用“EnumWindowsProc”之类的api。
2、枚举窗口后,可以得到窗口的hwnd,再根据hwnd记得有一个GetWindowText之类的函数可以得到窗口的标题字符。

可以在百度上查“C++ 枚举窗口”之类的。