• 您的位置我爱Aspx >> VC.Net >> <b>消息钩子函数入门篇</b>
  • <b>消息钩子函数入门篇</b>

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:13:08  关键字:
  • 消息钩子函数入门篇

    Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,屏幕取词,日志监视等等。可见,利用钩子可以实现许多特殊而有用的功能。因此,对于高级编程人员来说,掌握钩子的编程方法是很有必要的。

    钩子的类型

    一. 按事件分类,有如下的几种常用类型

    (1) 键盘钩子和低级键盘钩子可以监视各种键盘消息。

    (2) 鼠标钩子和低级鼠标钩子可以监视各种鼠标消息。

    (3) 外壳钩子可以监视各种Shell事件消息。比如启动和关闭应用程序。

    (4) 日志钩子可以记录从系统消息队列中取出的各种事件消息。

    (5) 窗口过程钩子监视所有从系统消息队列发往目标窗口的消息。

    此外,还有一些特定事件的钩子提供给我们使用,不一一列举。

    下面描述常用的Hook类型:

    1、WH_CALLWNDPROC和WH_CALLWNDPROCRET Hooks

    WH_CALLWNDPROC和WH_CALLWNDPROCRET Hooks使你可以监视发送到窗口过程的消息。系统在消息发送到接收窗口过程之前调用WH_CALLWNDPROC Hook子程,并且在窗口过程处理完消息之后调用WH_CALLWNDPRO

    CRET Hook子程。WH_CALLWNDPROCRET Hook传递指针到CWPRETSTRUCT结构,再传递到Hook子程。CWPRETSTRUCT结构包含了来自处理消息的窗口过程的返回值,同样也包括了与这个消息关联的消息参数。

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:<b>Visual C++中基于多文档视窗模型的重叠图象拼接技术</b>
    下一篇:<b>平台+插件软件设计思想及基于COM的原型实现</b>
  • 相关文章