获取点击鼠标按钮的窗口句柄

问题描述:

嘿,我使用的是Windows Hook,我在系统范围内安装了鼠标钩,它的工作完美。现在有一个问题,我需要点击鼠标的获取窗口句柄。我该怎么做?鼠标钩子事件是否传递给我们这些信息?获取点击鼠标按钮的窗口句柄

由于您使用的是WH_MOUSE_LL,因此您正在制作一个低级别鼠标挂钩,它实际上会接收到指向MSLLHOOKSTRUCT的指针,该指针没有hwnd成员。

您需要使用WH_MOUSE来设置正常的鼠标钩子;你会得到一个指向你期望的MOUSEHOOKSTRUCT ..

+0

现在工作吗? – SLaks 2009-10-29 20:46:33

使用WindowFromPoint函数获取给定位置下的窗口。

+0

但是,如果用户很快改变了窗口呢?我可能会得到错误的处理权利? – akif 2009-10-29 14:06:22

+0

如果你在鼠标钩子里面调用它,我不这么认为。 – SLaks 2009-10-29 14:11:02

+0

鼠标钩子事件也给了我们MOUSEHOOKSTRUCT,但它的hwnd值为null,但它的NULL,你知道为什么吗? – akif 2009-10-29 14:12:06

假设您设置了WH_MOUSE hook,您的MouseProc会收到指向MOUSEHOOKSTRUCT struct的指针。由于hwnd成员为NULL,因此可以使用WindowFromPoint与结构的pt成员一起使用。 pt成员是消息创建时的坐标。