谁能介绍介绍一下HOOK函数的用法

 我来答
soul张佳妮
2016-12-01 · TA获得超过1441个赞
知道小有建树答主
回答量:682
采纳率:83%
帮助的人:36.3万
展开全部
超级HOOK详细用法介绍

hook是WINDOWS提供的一种消息处理机制,它使得程序员可以使用子过程来监视系统消息,并在消息到达目标过程前得到处理。

下面将介绍WINNDOWSHOOKS并且说明如何在WINDOWS程序中使用它。

关于HOOKS

使用HOOK将会降低系统效率,因为它增加了系统处量消息的工作量。建议在必要时才使用HOOK,并在消息处理完成后立即移去该HOOK。

HOOK链

WINDOWS提供了几种不同类型的HOOKS;不同的HOOK可以处理不同的消息。例如,WH_MOUSEHOOK用来监视鼠标消息。

WINDOWS为这几种HOOKS维护着各自的HOOK链。HOOK链是一个由应用程序定义的回调函数队列,当某种类型的消息发生时,WINDOWS向此种类型的HOOK链的第一个函数发送该消息,在第一函数处理完该消息后由该函数向链表中的下一个函数传递消息,依次向下。如果链中某个函数没有向下传送该消息,那么链表中后面的函数将得不到此消息。(对于某些类型的HOOK,不管HOOK链中的函数是否向下传递消息,与此类型HOOK联系的所有HOOK函数都会收到系统发送的消息)

HOOK过程

为了拦截特定的消息,你可以使用SetWindowsHookEx函数在该类型的HOOK链中安装你自己的HOOK函数。该函数语法如下:

publicfunctionMyHook(nCode,wParam,iParam)aslong

‘加入代码

endfunction

其中MyHook可以随便命名,其它不能变。该函数必须放在模块段。nCode指定HOOK类型。wParam,iParam的取值随nCode不同而不同,它代表了某种类型的HOOK的某个特定的动作。

SetWindowsHookEx总是将你的HOOK函数放置在HOOK链的顶端。你可以使用CallNextHookEx函数将系统消息传递给HOOK链中的下一个函数。
tb...1@163.com
2016-12-01 · TA获得超过281个赞
知道小有建树答主
回答量:323
采纳率:50%
帮助的人:174万
展开全部
WINDOW的消息处理机制为了能在应用程序中监控系统的各种事件消息,提供了挂接
各种反调函数(HOOK)的功能。这种挂钩函数(HOOK)类似扩充中断驱动程序,挂钩上
可以挂接多个反调函数构成一个挂接函数链。系统产生的各种消息首先被送到各种
挂接函数,挂接函数根据各自的功能对消息进行监视、修改和控制等,然后交还控
制权或将消息传递给下一个挂接函数以致最终达到窗口函数。WINDOW系统的这种反
调函数挂接方法虽然会略加影响到系统的运行效率,但在很多场合下是非常有用
的,通过合理有效地利用键盘事件的挂钩函数监控机制可以达到预想不到的良好效
果。

一、在WINDOWS键盘事件上挂接监控函数的方法
WINDOW下可进行挂接的过滤函数包括11种:
WH_CALLWNDPROC 窗口函数的过滤函数
WH_CBT 计算机培训过滤函数
WH_DEBUG 调试过滤函数
WH_GETMESSAGE 获取消息过滤函数
WH_HARDWARE 硬件消息过滤函数
WH_JOURNALPLAYBACK 消息重放过滤函数
WH_JOURNALRECORD 消息记录过滤函数
WH_MOUSE 鼠标过滤函数
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式