AutoHotkey 鼠标指针隐藏:3 段代码覆盖录屏、演示与全屏游戏
【免费下载链接】AutoHotkeyAutoHotkey - macro-creation and automation-oriented scripting utility for Windows.项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey
录制教程视频时,光标在画面里频繁跳动,后期剪掉都很费劲。解决这个问题的关键词是AutoHotkey 鼠标指针隐藏:借助内置的SystemCursor函数,一行代码就能控制光标显隐。本文先讲清原理,再带你走完三档代码,最后交代常见坑位和源码位置。
两分钟看懂原理
SystemCursor("Off")底层调用的是 Windows 的ShowCursor接口,而该接口采用计数器方案:每调用一次ShowCursor(FALSE)计数减一,调用一次ShowCursor(TRUE)计数加一,计数小于 0 时光标隐藏,大于等于 0 时显示。由此可以推出两点:隐藏与显示应当成对调用;脚本中途崩溃,计数不会自动回退。AutoHotkey 把这层计数封装成了现成函数,你无需手写 DllCall。
三级代码实操
第一级:一行代码隐藏光标怎么做
最简形态,一行隐藏、一行恢复:
SystemCursor("Off") ; 隐藏指针 SystemCursor("On") ; 恢复指针参数只接受这两个取值(另可用"Default"恢复系统默认箭头)。把第一行贴进编辑器运行,即可看到指针消失。
第二级:热键切换与状态提示(AutoHotkey 光标控制)
按一次键切换状态,并用 ToolTip 告诉你当前处于哪种模式:
F2:: static off := false off := !off SystemCursor(off ? "Off" : "On") ToolTip, 指针% (off ? "已隐藏" : "已恢复") returnstatic变量保证状态在多次按键间保留;F2 只是示例,换成你手边不常用的组合键更稳妥。
第三级:录屏隐藏光标的自动化
免手动:定时检测前台窗口是否为全屏,是则自动隐藏指针,否则恢复:
#Persistent SetTimer, CheckCursor, 2000 return CheckCursor: WinGetPos, x, y, w, h, A if (w >= A_ScreenWidth && h >= A_ScreenHeight && x = 0 && y = 0) SystemCursor("Off") else SystemCursor("On") return2000是检测间隔(毫秒)。频繁往返调用会让计数器漂移,更稳的做法是记录上次状态、仅在变化时调用。
⚠️ 这几个坑要避开
| 问题 | 一句话解法 |
|---|---|
| 脚本被杀后光标回不来 | 计数在系统层,进程退出不会回退;脚本里常备一个恢复热键,结束前手动点一下 |
| 多脚本冲突 | 两个脚本各自调用 Off/On 会搅乱计数;同一时刻只让一个脚本管理光标 |
| 误触发 | F1 是 AutoHotkey 自带热键,切换键别用它,优先三键组合 |
| 全屏误判 | 最大化窗口尺寸也可能占满屏幕;需同时判断窗口坐标为 (0,0) |
源码在哪看
- keyboard_mouse.cpp:鼠标核心逻辑,指针定位、点击注入与显隐切换都落在这里
- keyboard_mouse.h:鼠标模块的接口声明
- hook.cpp:系统级键盘鼠标钩子,负责底层输入监控
- AutoHotkeyx.sln:Visual Studio 解决方案文件,编译整个项目的入口
从零跑起来
- 获取源码:
git clone https://gitcode.com/gh_mirrors/au/AutoHotkey - 用 Visual Studio 打开
AutoHotkeyx.sln编译;只想用功能的话,直接下载官方发布版即可跳过 - 把上面任意一段脚本存为
.ahk文件,双击运行
三档代码足以覆盖演示、录屏和游戏的日常需求;遇到光标回不来的情况,先对照坑位表检查计数是否成对。建议先把第一级的两行代码跑一遍,体会完整的切换过程。
【免费下载链接】AutoHotkeyAutoHotkey - macro-creation and automation-oriented scripting utility for Windows.项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考