The project's README from github.com/Arcadeq/windows-cursor-scheme-fix. As one markdown file: README.md.
更新了 Windows 11 最新版后发现,在部分 Windows 11 环境中,自定义鼠标光标方案已经正确安装,注册表中的路径也完全正确,但屏幕实际显示的“正常选择”(Arrow)、“链接选择”(Hand)、“忙碌”(Wait)、“后台运行”(AppStarting)等光标仍然是 Windows 经典样式。
本项目提供一个无需管理员权限的临时修复:读取当前用户所选方案中全部 14 个受支持光标角色(Arrow、Hand、Wait、AppStarting 等)的文件,通过 Windows 官方 SetSystemCursor API 将它们重新装载到当前登录会话,并可通过一个常驻后台进程在 Windows 重新初始化光标后自动恢复。
26220.9223.cur 光标方案(测试使用 Jepri Creations 光标包)其他 Windows 11 构建也可能出现相同现象,但尚未验证。
main.cpl 的“指针”页面可以看到并选择第三方方案。HKEY_CURRENT_USER\Control Panel\Cursors 中的各光标角色已指向正确的第三方 .cur/.ani 文件。LoadCursorFromFileW 正常加载。已确认的事实:
OCR_NORMAL、OCR_HAND、OCR_WAIT 等系统光标槽位内容仍是经典样式,与注册表指定文件不一致。SetSystemCursor 后,系统光标与注册表指定文件的像素内容完全一致,屏幕显示立即恢复正常。OCR_NORMAL 等槽位载成经典样式。因此,问题发生在“注册表方案 -> 当前登录会话的系统光标槽位”这一装载环节,而不是光标文件损坏或安装路径错误;且一次性应用无法长期保持,需要常驻进程在每次被还原后自动重新应用。
目前没有证据表明微软已公开确认该问题。它可能与 Insider 构建中的光标初始化、辅助功能指针设置或传统控制面板方案兼容性回归有关,具体内部原因仍待确认。
main.cpl 选择所需的自定义光标方案。Apply-CurrentCursorScheme.cmd。不要使用“以管理员身份运行”。脚本必须在日常登录账户下执行,才能读取正确的 HKEY_CURRENT_USER。
powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\Apply-CurrentCursorScheme.ps1"
一次性运行只作用于当前时刻;Windows 在会话中途重新初始化光标后,已修复的角色(尤其是 Arrow)可能再次被还原。推荐注册静默启动项,让后台进程在整个登录会话期间持续保持修复。
main.cpl 选择所需的自定义光标方案。Register-CursorSchemeStartup.cmd。Unregister-CursorSchemeStartup.cmd 可随时移除。注册的内容是当前用户启动文件夹(shell:startup)中的一个快捷方式,指向本目录的 CursorSchemeStartup-Launcher.vbs,由它以隐藏窗口方式运行 CursorSchemeStartup-Worker.ps1。该进程会在整个登录会话期间常驻,并按固定间隔重新读取注册表并重新应用,因此在 main.cpl 中切换方案后也会自动跟随。全程不显示任何窗口,不需要管理员权限。运行日志写在 %TEMP%\CursorSchemeStartup.log,每次登录覆盖写入。
请始终在本目录保存这些文件;移动或删除脚本后,启动项会因找不到文件而失效。
Win + R。shell:startup 并回车。Apply-CurrentCursorScheme.cmd 的快捷方式。这种方式在每次登录时只会应用一次,且会短暂闪现一个控制台窗口;如果希望持续保持修复且完全无窗口,请使用方法一。
Apply-CurrentCursorScheme.ps1 只执行以下操作:
HKEY_CURRENT_USER\Control Panel\Cursors 中 14 个受支持的光标角色(Arrow、Hand、Wait、AppStarting 等)。%SYSTEMROOT% 等环境变量。.cur/.ani 文件是否存在。LoadCursorFromFileW 加载光标。SetSystemCursor 替换当前会话中对应的全部系统光标槽位(OCR_NORMAL、OCR_HAND、OCR_WAIT、OCR_APPSTARTING 等 14 项)。方案中未配置(注册表值为空)的角色会被跳过;某个角色失败不会阻止其他角色应用,但脚本最后会以错误退出并列出失败的角色。
脚本不会修改注册表,不会下载文件,也不需要管理员权限。
CursorSchemeStartup-Worker.ps1 在登录后自动运行上述脚本:先在约 3 秒和 28 秒各应用一次(覆盖 Windows 登录后的两次光标初始化),随后进入监视模式,默认每 10 秒从注册表重新应用一遍(可通过 -WatchIntervalSeconds 调整)。它使用命名互斥锁防止多实例同时运行,日志只在状态变化和每 30 分钟心跳时写入,避免刷屏。
可以使用任意一种方式恢复:
main.cpl,重新选择并应用 Windows 默认方案(已注册静默启动项时会自动跟随新方案)。NWPen、Person、Pin 没有对应的 SetSystemCursor 槽位,暂无法通过本脚本恢复。powershell 进程,需要重新登录或手动运行 Apply-CurrentCursorScheme.cmd。%TEMP%\CursorSchemeStartup.log。