我刚才有一个关于在注册表中为单个用户重新映射密钥的能力的快速问题:
使用的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 \ Keyboard Layout
所以我想我自己到底会尝试同样的事情: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键
Windows密钥的已识别alt键
alt键的已识别控制键
我甚至通过power-shell杀死了explorer.exe:
taskkill.exe -im explorer.exe /f | Out-Null; start explorer.exe
我想为单个用户做什么?
如果没有第三方软件,我将如何实现这一目标?
答案 0 :(得分:2)
键盘驱动程序使用该注册表项。它在启动时读取它。因此,杀死资源管理器无效,您必须重新启动才能使更改生效。使用shutdown.exe -r
。无法重启而无法重新启动驱动程序。
请注意,攻击此密钥非常危险,当您犯错误时,您可能会失去对机器的控制权。我推荐KeyTweak,它让我把Ctrl键放在它过去10年里。
答案 1 :(得分:1)
如果它可以工作,假设它已经在注册表中的 HKEY_CURRENT_USER\Keyboard Layout
键中。但是,在 "Scan code mapper for keyboards" in "Keyboard and mouse class drivers" 部分中指出:
“存储在注册表中的映射在系统级别工作并适用于所有用户。这些映射不能根据当前用户设置为不同的工作方式。”
因此似乎不可能以这种方式为每个用户进行映射。 (读取此设置并进行转换的是键盘驱动程序,而不是会话管理器)。