我只是有一个关于在注册表中为单个用户重新映射密钥的能力的快速问题:
使用的ASCII表: http://www.csee.umbc.edu/portal/help/theory/ascii.txt
https://superuser.com/questions/694465/remapping-a-keyboard-key-in-windows-8-1
这向我指出:http://www.howtogeek.com/howto/windows-vista/disable-caps-lock-key-in-windows-vista/
该教程讨论了通过以下方式在机器级别重新映射密钥: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\键盘布局
所以我心里想,我到底要在以下位置尝试同样的事情:HKEY_CURRENT_USER\SYSTEM\CurrentControlSet\Control\Keyboard Layout
不幸的是,有点预期它不起作用:
reg add "HKEY_CURRENT_USER\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /t REG_BINARY /f /d 00000000000000000400000012005b005b00A200A200120000000000
^^^ 这应该切换:^^^
识别的windows键改为控制键
识别的alt键为windows键
识别的控制键改为alt键
我什至通过 power-shell 杀死了 explorer.exe:
taskkill.exe -im explorer.exe /f | Out-Null; start explorer.exe
我所尝试的操作对于单个用户来说是否可行?
如果是的话,在没有第三方软件的情况下我该如何实现这一点?
该注册表项由键盘驱动程序使用。它在启动时会读取它。因此,终止资源管理器没有任何效果,您必须重新启动才能使更改生效。使用
shutdown.exe -r
。无法在不重新启动的情况下重新启动驱动程序。
请注意,破解此密钥相当危险,当您犯错误时,您可能会失去对机器的控制。我推荐 KeyTweak,它让我在过去 10 年里把 Ctrl 键放在它该有的位置。
对于通过互联网搜索找到此内容的人。
Microsoft PowerToys 包含一个用于为用户重新映射按键的工具。
可能比直接编辑注册表更安全。
如果它能工作,假设它位于注册表中的
HKEY_CURRENT_USER\Keyboard Layout
键中。然而,在“键盘和鼠标类驱动程序”中的“扫描键盘的代码映射器”部分中,注意到:
“存储在注册表中的映射在系统级别工作并适用于所有用户。这些映射不能根据当前用户的不同而设置为不同的工作方式。”所以似乎不可能以这种方式为每个用户进行映射。 (读取此设置并进行翻译的是键盘驱动程序,而不是会话管理器)。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\键盘布局] “扫描码映射”=十六进制:00,00,00,00,00,00,00,00,02,00,00,00,5b,e0,5d,e0,00,00,00,00