一、鼠标钩子类型有两个,一个是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,_dwMessage
push _hWnd
pop hWnd;保存主程序的窗口句柄
push _dwMessage
pop dwMessage;保存要发送给主程序的消息类型
invoke SetWindowsHookEx,WH_MOUSE_LL,\
addr HookProc,hInstance,NULL
mov hHook,eax