(1) 线程钩子监视指定线程的事件消息。
(2) 系统钩子监视系统中的所有线程的事件消息。因为系统钩子会影响系统中所有的函数必须放在独立的动态链接库(DLL)中。这是系统钩子和线程钩子很大的不同之处。
几点需要说明的地方:
(1)如果对于同一事件(如鼠标消息)既安装了线程钩子又安装了系统钩子,那么系线程钩子,然后调用系统钩子。
(2)对同一事件消息可安装多个钩子处理过程,这些钩子处理过程形成了钩后应把钩子信息传递给下一个钩子函数。而且最近安装的钩子放在链的开始,而最也就是后加入的先获得控制权。
(3)钩子特别是系统钩子会消耗消息处理时间,降低系统性能。只有在必要的时候用完毕后要及时卸载。