- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HOOK教程一_使用SetWindowsHookEx进行Windows消息HOOKHOOK教程一_使用SetWindowsHookEx进行Windows消息HOOK
南邮王下邀月熊_HOOK学习笔记之Windows 消息HOOK Hook SetWindowsHookEx HOOK Hook SetWindowsHookEx HOOK 关于HHooookk·使用SSeettWWiinnddoowwssHHooookkEExx进行消息HHOOOOKK 一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗 口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函 数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出, 在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数 即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传 递。 二、运行机制: 1 1 11、钩子链表和钩子子程: 每一个Hook都有一个与之相关联的指针列表,称之为钩子链表,由系统来维护。这个列表的 指针指向指定的,应用程序定义的,被Hook子程调用的回调函数,也就是该钩子的各个处理子程。 当与指定的Hook类型关联的消息发生时,系统就把这个消息传递到Hook子程。一些Hook子程 可以只监视消息,或者修改消息,或者停止消息的前进,避免这些消息传递到下一个Hook子程或 者目的窗口。最近安装的钩子放在链的开始,而最早安装的钩子放在最后,也就是后加入的先获 得控制权。 Windows 并不要求钩子子程的卸载顺序一定得和安装顺序相反。每当有一个钩子被卸载,Windows 便释放其占用的内存,并更新整个Hook链表。如果程序安装了钩子,但是在尚未卸载钩子之前就 结束了,那么系统会自动为它做卸载钩子的操作。 钩子子程是一个应用程序定义的回调函数(CALLBACK Function),不能定义成某个类的成员函 数,只能定义为普通的C函数。用以监视系统或某一特定类型的事件,这些事件可以是与某一特 定线程关联的,也可以是系统中所有线程的事件。 钩子子程必须按照以下的语法: LRESULTCALLBACK HookProc ( intnCode, WPARAM wParam, LPARAMlParam ); HookProc是应用程序定义的名字。 nCode参数是Hook代码,Hook子程使用这个参数来确定任务。这个参数的值依赖于Hook类型, 每一种Hook都有自己的Hook代码特征字符集。 wParam和lParam 参数的值依赖于Hook代码,但是它们的典型值是包含了关于发送或者接收消息 的信息。 南邮王下邀月熊_HOOK学习笔记之Windows 消息HOOK 2 2 22、钩子的安装与释放: 使用 API 函数 SetWindowsHookEx()把一个应用程序定义的钩子子程安装到钩子链表中。 SetWindowsHookEx函数总是在Hook链的开头安装Hook子程。当指定类型的Hook监视的事件发 生时,系统就调用与这个Hook关联的Hook链的开头的Hook子程。每一个Hook链中的Hook子 程都决定是否把这个事件传递到下一个Hook子程。Hook子程传递事件到下一个Hook子程需要调 用CallNextHookEx 函数。 HHOOK SetWindowsHookEx( intidHook, // 钩子的类型,即它处理的消息类型 HOOKPROC lpfn, // 钩子子程的地址指针。如果dwThreadId 参数为0 // 或是一个由别的进程创建的线程的标识, //lpfn必须指向DLL 中的钩子子程。 // 除此以外,lpfn可以指向当前进程的一段钩子子程代码。 // 钩子函数的入口地址,当钩子钩到任何消息后便调用这个函数。 HINSTANCEhMod, // 应用程序实例的句柄。标识包含lpfn所指的子程的DLL。 // 如果dwThreadId 标识当前进程创建的一个线程, // 而且子程代码位于当前进程,hMod必须为NULL。 // 可以很简单的设定其为本应用程序的实例句柄。可以使用AfxGetInstanceHa
您可能关注的文档
- BZ振荡反应实验报告BZ振荡反应实验报告.doc
- C++ Primer 4th 第三章答案C++ Primer 4th 第三章答案.pdf
- BOOK6-CH安装维护手册BOOK6-CH安装维护手册.pdf
- C++中随机存取文件的处理C++中随机存取文件的处理.pdf
- C++回调函数经典详解C++回调函数经典详解.pdf
- c++程序设计实践报告c++程序设计实践报告.doc
- c-710英文说明c-710英文说明.pdf
- C-K方程C-K方程.ppt
- C010102-PP-005-确定实施策略与计划C010102-PP-005-确定实施策略与计划.doc
- C51第20课课件DS1302C51第20课课件DS1302.ppt
- 苏科版九年级物理上册《简单机械和功》专项测试试题.docx
- 苏科版九年级物理上册《简单机械和功》专项测评练习题(含答案解析).docx
- 苏科版九年级物理上册《电路初探》重点解析试题.docx
- 2026届北京市第一六一中学中学高三上化学期中达标测试试题含解析.doc
- 苏科版九年级物理上册《电路初探》达标测试试题(含详解).docx
- 苏科版九年级物理上册《电路初探》重点解析试题.docx
- 苏科版九年级物理上册《电路初探》重点解析试卷(解析版).docx
- 苏科版九年级物理上册《简单机械和功》专项攻克试卷.docx
- 压力控制元件.ppt
- 苏科版九年级物理上册《电路初探》达标测试试题(含解析).docx
文档评论(0)