在 Windows 8.1 更新之前,我能够通过本文中的注册表调整将 Caps-Lock 映射到控件:
然而,在升级到 8.1 后,我的调整不再起作用。我所做的是
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00
我猜测 Windows 8.1 可能已经改变了它解释键盘布局注册表的方式。
我是一位狂热的emacs
用户,所以这个问题对我来说是生死攸关的问题。
答案1
SharpKeys 帮我搞定了!我找不到其他方法,而且正如你所发现的,旧的注册表破解方法不再有效 :(
答案2
我认为使用 regedit 是最好的方法,因为您知道它有效。这会使 caps-lock 成为额外的 ctrl。但不会影响 ctrl 本身。
对于 Windows 7 和 Windows 8,请执行以下操作:
打开regedit.exe
转到此目录(在 regedit 中):
~/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/KeyboardLayout/
单击该目录 (KeyboardLayout) 后,在右侧框中单击鼠标右键,并添加new Binary Value
名为“Scancode Map”
对于 Windows 7,请这样写:
00 00 00 00 00 00 00 00
02 00 00 00 1D 00 3A 00
00 00 00 00
对于 Windows 8,请编写此代码,我已经验证它适用于 8.1 和 10(这只是四个额外的零):
00 00 00 00 00 00 00 00
02 00 00 00 1D 00 3A 00
00 00 00 00 00 00 00 00
点击确定并重新启动。
答案3
我的情况也一样。这是一个部分修复。在 Technet.microsoft.com 的 SysInternals 网页上,下载Ctrl2Cap.zipMark Russovich 的档案
将 zip 文件解压到一个目录中。以管理员权限打开 CMD 窗口(右键单击 CMD.EXE 图标并选择“以管理员身份运行”)。CD 到存档目录,运行ctrl2cap /install
并按 ENTER。关闭 CMD 窗口并重新启动计算机。
当 Windows 重新启动时,CapsLock 将完全按照 Control 键的功能运行。在 Windows 8.0 及更低版本中,左 Control 键将按照 CapsLock 键的功能运行,将所有字母转换为大写,并切换键盘上的 CapsLock 指示灯。不幸的是,在 Windows 8.1 上,左 Control 键仍像以前一样工作。因此,这里介绍的并不是一个完整的解决方案,但它实现了最重要的功能:将 CapsLock 转换为 Control 键。
答案4
实际上我认为我已经在这里构建了完美的解决方案:
作为 Vim 用户,这对我来说是必须的,而且我在 Windows 上使用它已经很长时间了,而且效果很好。我只需HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
使用 regedit 创建一个条目来指向可执行文件,它就可以正常工作。
它将使您的 CAPSLOCK 不仅仅是 CTRL(和弦时),而且还 ESC(单独按下和释放时)!
要编译和安装依赖项,请检查存储库 README 和 Interception 主网站。
我还在这里创建了相同的 Linux 版本: