环球微资讯!Windows下钩子_windows 钩子

2022-09-16 09:21:40来源:互联网  

一、钩子
    为了监视或控制windows的系统事件,windows提供钩子技术。Windows应用可以安装一个子进程来监控windows中消息的往来,还能把消息到达目的窗口过程之前处理某种类型的消息。

Windows系统为每种类型的钩子管理一个独立的钩子链。钩子链是Windows应用程序定义回调函数的指针列表。Windows会把该消息一个接着一个传给每一个钩子链的钩子过程(回调函数)。有些类型钩子过程只能监控消息。有些类型钩子过程能够禁止消息到达下一个钩子过程或目的窗口。


(资料图)

二、钩子过程

钩子过程可以是全局的,监控Windows中所有线程的消息,也可以监控特定线程的消息。全局钩子过程必须在一个独立的DLL模块中。钩子过程如下:LRESULT CALLBACK HookProc(int nCode,WAPRAM wParam,LPARAM lParam)

{

}

参数nCode是钩子代码,每中钩子类型都有自己的钩子代码。

参数wParam和lParam的值取取决与钩子代码,其包含消息的信息。

SetWindowsHookex会把新的钩子过程安装在钩子链的开始。
CallNextHookEx 把消息传到下一个过程。
UnhookWindowsHookEx 卸载钩子过程

三、钩子类型

Windows系统中钩子类型很多,最常用的钩子类型:WH_KEYBOARD_LLWH_MOUSE_LL

WH_KEYBOARD_LL : 底层键盘钩子,可以捕获全部的系统按键

WH_MOUSE_LL  :  底层鼠标钩子,可以截获全部的鼠标事件

  

五、代码示例 WH_KEYBOARD_LL
    1、钩子过程       

       

2. 安装钩子过程
    

3. 卸载钩子过程

  

  

相关阅读

精彩推荐

相关词

推荐阅读