钩子程序的分类

按事件分类有如下的几种常用类型(1)键盘钩子和低级键盘钩子可以监视各种键盘消息。(2)鼠标钩子和低级鼠标钩子可以监视各种鼠标消息。(3)外壳钩子可以监视各种Shell事件消息。比如启动和关闭应用程序。(4)日志钩子可以记录从系统消息队列中取出的各种事件消息。(5)窗口过程钩子监视所有从系统消息队列发往目标窗口的消息。另外还有一些特定事件的钩子提供给我们使用,不一一列举。按使用范围分类主要有线程钩子和系统钩子(1)线程钩子监视指定线程的事件消息。(2)系统钩子监视系统中的所有线程的事件消息。因为系统钩子会影响系统中所有的应用程序,所以钩子函数必须放在独立的动态链接库(DLL)中。这是系统钩子和线程钩子很大的不同之处。几点需要说明的地方:(1)如果对于同一事件(如鼠标消息)既安装了线程钩子又安装了系统钩子,那么系统会自动先调用线程钩子,然后调用系统钩子。(2)对同一事件消息可安装多个钩子处理过程,这些钩子处理过程形成了钩子链。当前钩子处理结束后应把钩子信息传递给下一个钩子函数。而且最近安装的钩子放在链的开始,而最早安装的钩子放在最后也就是后加入的先获得控制权。(3)钩子特别是系统钩子会消耗消息处理时间,降低系统性能。只有在必要的时候才安装钩子,在使用完毕后要及时卸载。

免责声明:本站发布的游戏攻略(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!