鼠标轨迹控制器:数位板书写防漂移的 Windows 小工具
鼠标轨迹控制器:数位板书写防漂移的 Windows 小工具
用手写板在 OneNote 上记笔记的人,大概都遇到过这一幕:低头写完一行,抬头发现指针不知道什么时候漂到了屏幕另一头,刚才那几个字全写空了。
Windows 其实自带”鼠标轨迹”功能,指针移动时拖一小串影子,眼神跟着影子走就不容易丢。但开关藏在”鼠标属性”里,每次要跳好几层菜单;更关键的是,系统只给了开和关,轨迹长度调不了。
从一个注册表值下手
翻了一遍,这个功能的实质就是注册表里的一个值:
1 | HKEY_CURRENT_USER\Control Panel\Desktop |
光改注册表还不够,改完必须再调一次 SystemParametersInfoW(SPI_SETMOUSETRAILS),设置才会立即生效。这一点是后来试出来的:一开始我只改了注册表,滑块拖了半天画面没反应,以为路径写错了,排查半天才发现少了一次 API 调用。
工具做了什么
想清楚原理后,写了个 tkinter 小工具,一个窗口解决三件事:开关、1-7 级长度滑块、当前状态显示。窗口 550x420,一个主框架加两个 LabelFrame,没上花里胡哨的东西。
几个实现上的细节:
- 滑块拖动时,如果轨迹正处于开启状态,会直接应用新长度,不用再点”确定”。”设置立即生效”是需求,不是宣传语。
- 背后有个监控线程,每 0.5 秒读一次注册表刷新界面状态。原因是这个值不止我一个程序在写,别的优化软件、组策略都可能动它,界面显示必须跟实际值保持一致,不能自己骗自己。
- 读注册表失败时按”已关闭”处理。宁可不显示,也不能显示一个错状态。
核心代码其实就两段,读和写:
1 | SPI_SETMOUSETRAILS = 0x005D |
打包与使用
用 PyInstaller 打成单文件 exe,目标机器不用装 Python,双击即用。仓库里带了 build_exe.bat,一键打包,产物在 dist\鼠标轨迹控制器.exe。
- 系统要求:Windows 10 / 11
- Python 3.6+ 仅在打包时需要
界面长这样,一个滑块一个按钮,状态实时显示:

仓库地址:LuminDream/mouse_trail_controller,MIT License。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuminDream's Blogs!


