鼠标钩子WH_MOUSE_LL
一、鼠标钩子类型有两个,一个是WH_MOUSE,另一个是WH_MOUSE_LL,其中WH_MOUSE只能监控钩子所在模块的鼠标事件,而WH_MOUSE_LL可以截获整个系统所有模块的鼠标事件。
因为我们要获取整个系统的鼠标事件,所以我们用WH_MOUSE_LL,并用WIN32汇编编写,其中界面和思路参考了http://blog.csdn.net/friendan/article/details/12168273
二、鼠标钩子只能存在Dll中,所以我们需要创建一个DLL文件,用于安装钩子和卸载钩子,并把鼠标信息发送给主程序,下面是DLL文件部分代码,有钩子的安装
InstallHook proc _hWnd,_dwMessagepush _hWndpop hWnd;保存主程序的窗口句柄push _dwMessagepop dwMessage;保存要发送给主程序的消息类型invoke SetWindowsHookEx,WH_MOUSE_LL,\addr HookProc,hInstance,NULLmov hHook,eaxret
InstallHook endp
钩子卸载
UninstallHook procinvoke UnhookWindowsHookEx,hHookret
UninstallHook endp
钩子处理过程比较简单,直接发送自定义的消息给主程序
HookProc proc _dwCode,_wParam,_lParamlocal @szKeyState[256]:byteinvoke CallNextHookEx,hHook,_dwCode,\_wParam,_lParaminvoke SendMessage,hWnd,dwMessage,\_wParam,_lParamxor eax,eaxret
HookProc endp
三、主程序采用动态装入DLL方式加载生成的DLL文件,并在窗口过程处理收到鼠标信息,用列表控件显示收到的wParam,lParam值,鼠标消息、鼠标坐标
具体完整的代码查看
MouseHook完整源码下载
鼠标钩子WH_MOUSE_LL相关推荐
- 低级鼠标钩子WH_MOUSE_LL
翻MSDN可知,鼠标钩子类型有两个,一个是WH_MOUSE,另一个是WH_MOUSE_LL, 至于它们的区别,百度了一下: 1.WH_MOUSE只能监控钩子所在模块的鼠标事件. 2.WH_MOUSE_ ...
- 游戏修改器制作教程二:键盘鼠标钩子
本教程面向有C\C++基础的人,最好还要懂一些Windows编程知识 代码一律用Visual Studio 2013编译,如果你还在用VC6请趁早丢掉它... 写这个教程只是为了让玩家更好地体验所爱的 ...
- 全局鼠标钩子:WH_MOUSE_LL, 在【 win 10 上网本】上因为太卡,运行中丢失全局鼠标钩子...
一台几年前买的上网本,让我安装了一个 win 10,然后用来测试程序的时候, 发现 使用 SetWindowsHookEx(WH_MOUSE_LL, mouseHook, GetModuleHandl ...
- [转]VSTO Office二次开发应用程序键盘鼠标钩子
可能在使用VSTO技术对Office的相关程序进行操作时,会碰到用程序去控制一些快捷键的操作,可以对键盘进行挂钩,此时使用P/Invoke函数实现. 原文链接:<VSTO应用程序中加入键盘钩子& ...
- VSTO Office二次开发键盘鼠标钩子使用整理
VSTO Office二次开发键盘鼠标钩子使用整理 可能通过程序控制键盘的操作和控制鼠标的一些操作,网上提供比较多的也是比较好的就是通过钩子(Hook)的方式实现. 简单整理了一下,没有找到很好的程序 ...
- VSTO Office二次开发应用程序键盘鼠标钩子
可能在使用VSTO技术对Office的相关程序进行操作时,会碰到用程序去控制一些快捷键的操作,可以对键盘进行挂钩,此时使用P/Invoke函数实现. 原文链接:<VSTO应用程序中加入键盘钩子& ...
- java vk减号_[原]在全局鼠标钩子中模拟鼠标右键单击
//bSwap:BOOL型 //为TRUE为切换左右键功能,为FALSE为恢复原左右键功能 ::SwapMouseButton(bSwap); 可以使用RegisterHotKey()注册一个热键,在 ...
- 使用钩子函数[3] - 建立一个全局的鼠标钩子
分两步: 一.建立 DLL, 并在 DLL 实现钩子的设置.释放和钩子函数; 二.再建一个工程调用测试. 第一步: 做 DLL 先建立一个 DLL 工程, 自动初始的代码如下(去掉注释了): libr ...
- 用Delphi实现Windows的鼠标钩子函数
用Delphi实现Windows的鼠标钩子函数 Delphi是基于PASCAL语言的Windows编程工具,功能十分强大.然而在Delphi的帮助 文件中,对Windows API函数的说明沿袭了 V ...
- 【IPC-钩子】WM_COPYDATA和鼠标钩子小程序
[IPC-钩子]WM_COPYDATA和鼠标钩子小程序 作者: 来自: 阅读次数: 218 [大 中 小] -------------------------------------------- ...
最新文章
- Win 7 隐藏小功能——屏幕录制
- Quill编辑器IOS下无法获取焦点的解决方法
- Service Manger的初始化分析
- 【特征工程】(未完成)编码
- 如何在ESX下抓取数据包
- SCPPO(二):禅道的使用—管理员
- pg数据库表接口和数据导出
- 敏捷 - #7 原则:工作软件是进度的主要衡量标准 ( #7 Agile - Principle)
- WIN2008R2激活工具
- 计算机无法删除ie,Win7系统IE11 IE10 IE9强制卸载工具方法(解决IE无法卸载)
- Matlab 答题卡方案
- 微信小程序开发——获取APPID
- Centos8 开启Telnet服务
- iPhone 12已安装的App显示正在安装处理方法
- 修改global.func.php,DZ论坛核心代码分析-核心文件global.func.php篇
- 设计模式原则 - 迪米特法则(六)
- 端午节祝福的html,端午节祝福语大全(打油诗版)
- 移动硬盘无法读取与快速修复方法
- java none怎么用tomcat_关于如何在Tomcat中使用JavaBean
- Cris 的 Spark Streaming 笔记