千家信息网

C#鼠标钩子 带你走出Form的区域限制

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,记一次鼠标钩子的使用惰性啊,好久没写东西了,但是今天这东西太重要,所以决心记下来,后续可以看看。鼠标钩子(MouseHock),很少使用的一个功能,偶尔要用了也会因为各种涉及操作系统底层的接口让我这种
千家信息网最后更新 2026年11月01日C#鼠标钩子 带你走出Form的区域限制

记一次鼠标钩子的使用

惰性啊,好久没写东西了,但是今天这东西太重要,所以决心记下来,后续可以看看。

鼠标钩子(MouseHock),很少使用的一个功能,偶尔要用了也会因为各种涉及操作系统底层的接口让我这种水货避而远之,话又说回来了,兴趣是最好的老师,这次我Get了这个技能,但由于这个功能太过于强大,属于非托管资源,用完请立即释放钩子,否则你QQ回车发送的东西能传到你调试的XXXAPI你信不。。。

顾名思义,围绕着鼠标的操作而进行的,提前附上鼠标的相关Intptr值:

private const int WM_MOUSEMOVE = 0x200;

private const int WM_LBUTTONDOWN = 0x201;

private const int WM_RBUTTONDOWN = 0x204;

private const int WM_MBUTTONDOWN = 0x207;

private const int WM_LBUTTONUP = 0x202;

private const int WM_RBUTTONUP = 0x205;

private const int WM_MBUTTONUP = 0x208;

private const int WM_LBUTTONDBLCLK = 0x203;

private const int WM_RBUTTONDBLCLK = 0x206;

private const int WM_MBUTTONDBLCLK = 0x209; 十六进制的值,注意和十进制之间的转换


  1. 钩子源码网上很多就不敲了,使用过程简单说一下:

  2. 创建对象

  3. 安装钩子

  4. 绑定事件

  5. 卸载钩子(释放资源)

钩子里有这样一段代码,说下用的时候存在的坑:

private int MouseHookProc(int nCode, IntPtr wParam, IntPtr lParam)

{

Win32Api.MouseHookStruct MyMouseHookStruct = (Win32Api.MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(Win32Api.MouseHookStruct));

if (nCode < 0)

{

return Win32Api.CallNextHookEx(hHook, nCode, wParam, lParam);

}

else

{

//判断是否是鼠标点击 规避鼠标移动函数

if (wParam.ToString("X2") == "201" || wParam.ToString("X2") == "204")

{

MouseButtons button = MouseButtons.Left;

var e = new MouseEventArgs(button, 1, point.X, point.Y, 0);

MouseClickEvent?.Invoke(this, e);

this.Point = new Point(MyMouseHookStruct.pt.x, MyMouseHookStruct.pt.y);

//return Win32Api.CallNextHookEx(hHook, nCode, wParam, lParam);

}

return default(int);

}

}

注: 标记区域是因为我的任务需求是需要鼠标执行单击操作,而不是千篇一律的将钩子抓取的所有操作都传出来,一方面是资源开销大,一方面是确实不需要,判断的地方写的很Low,直接对比上附的十六进制值 务必注意释放钩子!!!

钩子 鼠标 东西 资源 一方 功能 十六进制 区域 强大 重要 千篇一律 顾名思义 操作系统 之间 事件 代码 任务 兴趣 决心 函数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 百单网互联网科技有限公司 科技金融是不是互联网金融 互联网科技公司的优势 朗新科技与工业互联网 网络科技有限互联网 上海卓越科技 互联网 互联网金融和金融科技 深圳卡尔迅互联网科技有限公司怎么样 博兴的互联网电子科技公司 成都玖崟互联网科技有限公司乐商圈怎么样 宜昌元轩互联网科技有限公司 恒生互联网科技指数跳水 互联网金融科技展 南博望互联网科技有限公司 广州富喜互联网络科技 启辰互联网科技 吉林省码上互联网科技电话 现代科技的标志之一的互联网 互联网 科技节活动 微视频大赛 广东万易互联网科技有限公司惠州分公司 中关村互联网 科技集团 互联网和科技技术 互联网最新的科技有限公司 互联网科技创新企业排名 老年人脱离互联网科技的作文 博兴的互联网电子科技公司 玖二柒互联网科技公司待遇 中国航天科技大学国际工业互联网 深圳市罗太互联网科技有限公司
0