一、鼠标钩子类型有两个,一个是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相关推荐

  1. 低级鼠标钩子WH_MOUSE_LL

    翻MSDN可知,鼠标钩子类型有两个,一个是WH_MOUSE,另一个是WH_MOUSE_LL, 至于它们的区别,百度了一下: 1.WH_MOUSE只能监控钩子所在模块的鼠标事件. 2.WH_MOUSE_ ...

  2. 游戏修改器制作教程二:键盘鼠标钩子

    本教程面向有C\C++基础的人,最好还要懂一些Windows编程知识 代码一律用Visual Studio 2013编译,如果你还在用VC6请趁早丢掉它... 写这个教程只是为了让玩家更好地体验所爱的 ...

  3. 全局鼠标钩子:WH_MOUSE_LL, 在【 win 10 上网本】上因为太卡,运行中丢失全局鼠标钩子...

    一台几年前买的上网本,让我安装了一个 win 10,然后用来测试程序的时候, 发现 使用 SetWindowsHookEx(WH_MOUSE_LL, mouseHook, GetModuleHandl ...

  4. [转]VSTO Office二次开发应用程序键盘鼠标钩子

    可能在使用VSTO技术对Office的相关程序进行操作时,会碰到用程序去控制一些快捷键的操作,可以对键盘进行挂钩,此时使用P/Invoke函数实现. 原文链接:<VSTO应用程序中加入键盘钩子& ...

  5. VSTO Office二次开发键盘鼠标钩子使用整理

    VSTO Office二次开发键盘鼠标钩子使用整理 可能通过程序控制键盘的操作和控制鼠标的一些操作,网上提供比较多的也是比较好的就是通过钩子(Hook)的方式实现. 简单整理了一下,没有找到很好的程序 ...

  6. VSTO Office二次开发应用程序键盘鼠标钩子

    可能在使用VSTO技术对Office的相关程序进行操作时,会碰到用程序去控制一些快捷键的操作,可以对键盘进行挂钩,此时使用P/Invoke函数实现. 原文链接:<VSTO应用程序中加入键盘钩子& ...

  7. java vk减号_[原]在全局鼠标钩子中模拟鼠标右键单击

    //bSwap:BOOL型 //为TRUE为切换左右键功能,为FALSE为恢复原左右键功能 ::SwapMouseButton(bSwap); 可以使用RegisterHotKey()注册一个热键,在 ...

  8. 使用钩子函数[3] - 建立一个全局的鼠标钩子

    分两步: 一.建立 DLL, 并在 DLL 实现钩子的设置.释放和钩子函数; 二.再建一个工程调用测试. 第一步: 做 DLL 先建立一个 DLL 工程, 自动初始的代码如下(去掉注释了): libr ...

  9. 用Delphi实现Windows的鼠标钩子函数

    用Delphi实现Windows的鼠标钩子函数 Delphi是基于PASCAL语言的Windows编程工具,功能十分强大.然而在Delphi的帮助 文件中,对Windows API函数的说明沿袭了 V ...

  10. 【IPC-钩子】WM_COPYDATA和鼠标钩子小程序

    [IPC-钩子]WM_COPYDATA和鼠标钩子小程序 作者:  来自:  阅读次数: 218 [大 中 小] -------------------------------------------- ...

最新文章

  1. Win 7 隐藏小功能——屏幕录制
  2. Quill编辑器IOS下无法获取焦点的解决方法
  3. Service Manger的初始化分析
  4. 【特征工程】(未完成)编码
  5. 如何在ESX下抓取数据包
  6. SCPPO(二):禅道的使用—管理员
  7. pg数据库表接口和数据导出
  8. 敏捷 - #7 原则:工作软件是进度的主要衡量标准 ( #7 Agile - Principle)
  9. WIN2008R2激活工具
  10. 计算机无法删除ie,Win7系统IE11 IE10 IE9强制卸载工具方法(解决IE无法卸载)
  11. Matlab 答题卡方案
  12. 微信小程序开发——获取APPID
  13. Centos8 开启Telnet服务
  14. iPhone 12已安装的App显示正在安装处理方法
  15. 修改global.func.php,DZ论坛核心代码分析-核心文件global.func.php篇
  16. 设计模式原则 - 迪米特法则(六)
  17. 端午节祝福的html,端午节祝福语大全(打油诗版)
  18. 移动硬盘无法读取与快速修复方法
  19. java none怎么用tomcat_关于如何在Tomcat中使用JavaBean
  20. Cris 的 Spark Streaming 笔记

热门文章

  1. python opencv导入pbtxt文件出现错误Failed to parse GraphDef file
  2. go项目实战 <微信公众号后台开发>(一、获取token)
  3. 【FPGA】:ip核-----CIC滤波器
  4. IDAPython安装
  5. matlab均值方差模型,马科维茨均值方差模型的Matlab实现
  6. 小工具 | 全站仪图根测量平差excel计算表格
  7. layui表单验证提交
  8. Neo4j 下载安装
  9. 遗传算法实例解析(python)
  10. 最速下降法及案例分析(含MATLAB代码)