9
我不知道窗口钩子是如何在“系统级”工作的。 MSDN只触及了什么事情很简单:窗钩 - 它们是如何工作的?
钩子是系统消息处理机制的一个点,其中一个 应用程序可以安装一个子程序来监视邮件流量 的系统和过程中的某些类型的消息然后才能到达目标窗口过程 。
我最好的猜测是类似下面的东西:每个消息被添加到消息队列的窗口
之前,会先发送邮件到全局/局部钩子,这可能会做些什么,取决于他们的钩子程序。在所有全局钩子和本地钩子之后,消息最终被添加到窗口消息队列中。
然而,MSDN说,对于一些类型的钩子的,它将监视events
,notifications
等
一个例子是WH_MOUSE_LL
钩:
安装,监视低一个钩子程序级别鼠标 输入事件。有关更多信息,请参阅LowLevelMouseProc钩子 过程。
当他们说events
,我们在说窗口消息,还是他们的意思是别的?
我都错了吗?
奖励风格点为手绘图的图像。 – rkb 2011-12-26 00:13:48
这里是一个小解释http://b.1asphost.com/mmbaig/Tutorials/Windows_Hooks.html – 2011-12-26 00:47:06
许多挂钩是基于消息的。但不是你所讨论的钩子,它实际上是由一个“事件”触发的。它仅在* Windows创建消息并将其放入具有焦点的窗口的消息队列中之前运行。与WH_MOUSE相比较,WH_MOUSE是一个全局钩子,当应用程序调用Get/PeekMessage并且即将从消息队列中检索鼠标消息时运行。因此实际上由消息触发。 – 2011-12-26 01:00:36