钩子编程

钩子编程
钩子是Windows消息处理机制的要点,Windows消息从硬件的输入到应用程序之间的传递。

概述

当在应用程序中设置多个钩子函数以后,应用程序中的钩子函数组成一个与钩子相关联的指向钩子函数的指针列表。当钩子函数监视的消息到达以后,Windows系统首先将消息送到指针列表所指向的第一个钩子函数中,这个钩子函数对消息进行监视、修改、控制后,再将消息传递到下一个钩子函数中,再次进行处理,这样直到到达钩子链表的最后。在钩子链表对消息处理完成以后,消息仍然被送到应用程序的窗口中进行处理。
钩子函数拦截了消息,并且进行了一些处理,这显然影响了程序的效率,但是这种付出的回报是程序员可以对某些感兴趣的消息进行控制。钩子函数的本质就是一个处理系统消息的函数,通过应用程序将函数挂入到系统中,对系统消息进行拦截和处理。

钩子范围