可以使用 HKEY_CURRENT_USER\Keyboard Layout -> Scancode Map 在 Windows 上“重新定义”键盘布局吗?

Ren*_*ger 4 windows windows-registry windows-7 keyboard-layout

在我拥有完全管理员权限的计算机上,我使用以下注册表项更改了键盘布局

REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] 
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,01,00,3a,00,3a,00,01,00,1d,e0,5c,e0,00,00,00,00
Run Code Online (Sandbox Code Playgroud)

效果很好,符合预期。

现在,在另一台我没有更改 HKLM 条目的必要权限的计算机上,我在 HKCU 下尝试了相同的操作:

REGEDIT4 
[HKEY_CURRENT_USER\Keyboard Layout] 
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,01,00,3a,00,3a,00,01,00,1d,e0,5c,e0,00,00,00,00
Run Code Online (Sandbox Code Playgroud)

不幸的是,在这台计算机上,它没有效果(我可以注意到)。我已经重新启动了计算机。注册表项是通过 注册的regedit,我可以用regedit.

因此,可HKEY_CURRENT_USER\Keyboard Layout -> "Scancode Map"用于重新定义我的键盘布局,尤其是当我没有更改 HKLM 的必要权限时。

Kar*_*ran 5

尽管以下是存档文件,但我相信它对 Win7 仍然有效:Scan Code Mapper for Windows

认识到以下缺点:

  • 地图存储在注册表中后,需要重新启动系统才能激活它。

  • 存储在注册表中的映射在系统级别工作并适用于所有用户。这些映射不能根据当前用户设置为不同的工作方式。

  • 当前的实现限制了映射的功能,以便映射始终适用于连接到系统的所有键盘。目前无法在每个键盘的基础上创建地图。