文章目录[隐藏]
本课通过鼠标全局钩子,监视获取鼠标的动作,用的的API有:SetWindowsHookExA(安装钩子)、CallNextHookEx(卸载钩子)、UnhookWindowsHookEx(呼叫调用下一个钩子)。
API源码:
.版本 2 .DLL命令 SetWindowsHookExA, 整数型, , "SetWindowsHookExA", , 安装钩子,函数成功则返回钩子子程的句柄,失败返回NULL .参数 ihook, 整数型, , 钩子类型 .参数 lpfunc, 整数型, , 回调函数 .参数 hin, 整数型, , 实例句柄 .参数 threadid, 整数型, , 线程ID .DLL命令 CallNextHookEx, 整数型, "user32.dll", "CallNextHookEx", , 调用钩子链中的下一个挂钩过程,调用成功返回值是下一个钩子的回调函数,否则为0。当前钩子程序也必须返回此值。 .参数 hhook, 整数型, , 当前钩子的句柄 .参数 nCode, 整数型, , 钩子回调函数中的参数 .参数 wParam, 整数型, , 钩子回调函数中的参数 .参数 lParam, 整数型, , 钩子回调函数中的参数 .DLL命令 UnhookWindowsHookEx, 逻辑型, "user32.dll", "UnhookWindowsHookEx", , 卸载钩子过程,函数成功则返回非0,失败返回NULL .参数 hhk, 整数型, , 安装钩子过程进得到的钩子句柄
安装鼠标钩子源码:
鼠标钩子句柄 = SetWindowsHookExA (14, 到整数 (&鼠标钩子回调), 0, 0)
鼠标钩子回调函数源码:
.版本 2 .支持库 spec .子程序 鼠标钩子回调, 整数型, , 不同的钩子,回调函数是不一样的 .参数 代码值, 整数型 .参数 参数一, 整数型 .参数 参数二, 整数型 ' 512 鼠标移动 ' 513 左键按下 ' 514 左键弹起 ' 516 右键按下 ' 517 右键弹起 ' 519 中键按下 ' 520 中键弹起 ' 522 中键滚动 .判断开始 (参数一 = 512) 调试输出 (“鼠标在移动”) .判断 (参数一 = 513) 调试输出 (“左键按下”) .判断 (参数一 = 514) 调试输出 (“左键弹起”) .判断 (参数一 = 516) 调试输出 (“右键按下”) .判断 (参数一 = 517) 调试输出 (“右键弹起”) .判断 (参数一 = 519) 调试输出 (“中键按下”) .判断 (参数一 = 520) 调试输出 (“中键弹起”) .判断 (参数一 = 522) 调试输出 (“中键滚动”) .默认 .判断结束 ' 返回(1)就是屏蔽了全局的鼠标,非0就行 ' 返回 (3) 返回 (CallNextHookEx (鼠标钩子句柄, 代码值, 参数一, 参数二))
卸载鼠标钩子:
UnhookWindowsHookEx (鼠标钩子句柄)
教程获取下载:
百度网盘链接:https://pan.baidu.com/s/158ikKVjIwaoF4438MG4fhA
提取码:加QQ群:521068947 群文件下载
资源教程交流①群:521068947
511遇见QQ: 272586593