jeff
2017 年5 月 25 日 02:12
1
例如,按下 Caps Lock - x - f 后,再按字母都是大写的,有什么办法解决不?
谢谢!
操作系统: Windows 7 Pro
交换Caps Lock和 Left Ctrl的方法是通过修改注册表实现的,如下:
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,04,00,00,00,3A,00,1D,00,1D,00,3A,00,38,00,38,e0,00,00,00,00
不会呀?没有遇到过。不过我是Caps Lock和ESC交换的。
jeff
2017 年5 月 25 日 03:18
3
我在交换后,按下 Caps Lock,那个灯还回亮,而且后面再按字母,全部都是大写的。
注册表修改之后可能需要注销用户之后新的键位才能生效。
PS: Windows 下我推荐用一个 MapKeyboard 的程序修改键位。
用autohotkey吧,绿色软件,几行代码就搞定了
jeff
2017 年5 月 25 日 04:52
7
autohotkey确实能解决问题。
但是不明白为何修改了注册表,caps lock按下后还会大写锁定?
http://jixiuf.github.io/assets/blog/000011-windows-keymap.html/windows-keymap2.JPG
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,03,00,00,00,3a,00,1d,00,1d,00,3a,00,00,00,00,00
jeff
2017 年5 月 25 日 06:26
10
试了jixiuf的方法,问题依旧存在。修改后的注册表内容如下,
LdBeth
2017 年5 月 25 日 07:33
11
感觉是因为key code的意思是,短按仍识别为 Caps Lock,长按才是 Ctrl。
jeff
2017 年5 月 25 日 07:38
12
只要当前大写锁定未生效,那么无论长按或者短按,大写锁定都生效。当然长按时,给人的感觉是先扮演 Ctrl,再扮演 Caps Lock。
LdBeth
2017 年5 月 25 日 08:15
13
那么可能是键盘固件的问题……
可能你的键盘 Caps Lock 是直接由键盘处理的,不接受系统级别的按键更改
jeff
2017 年5 月 25 日 08:18
14
但是使用类似autohotkey的话可以正确的做映射。键盘固件只负责上报键码,不会直接处理的。
我的键盘也不特殊,型号是 Dell keyboard KB212-B.
难道@LdBeth那边通过直接修改注册表,不会出现我提到的问题?
LdBeth
2017 年5 月 25 日 08:24
15
我好久没用 Windows了。
macOS 可以在设置里面直接改。
我用的也是可编程的外接键盘,固件不一样 Caps 行为也有区别。(年轻人不要碰外设)
也不见得一定是键盘固件的问题,可能是中间某一层的问题。
既然能用 ahk 解决,最好不过
jeff
2017 年5 月 25 日 08:37
16
很有可能是虚拟机引入的。现在我是通过Linux云端进入Windows虚拟机,可能是 Linux 将 Caps Lock 的key code 和 key symbol 同时发送给了 Windows 虚拟机,导致在 Windows 虚拟机上按 Caps Lock 时,同时上演 Caps Lock 和 Ctrl。
而 Autohotkey 在较高的层次在做按键映射,所以会把 Caps Lock 的 key code 和 key symbol 都映射成 Ctrl,故而避开了上面提到的问题。
2 个赞
jeff
2017 年6 月 1 日 12:22
17
用了AutoHotKey后,还发现一个问题,Caps Lock - Alt - s
没有反应,本来应该是 Regexp I-search
AHK的script如下,
Capslock::Control ; make Caps Lock the control button
这个问题和所选用的键盘有关。经过AutoHotKey将 Caps Lock 映射成 Ctrl 后, 不同的键盘对不同的按键组合反应不同。比如,
jeff
2017 年6 月 2 日 04:49
19
这么看起来,玩 emacs 的成本比 vi 要高啊,首先得有个全键无冲的键盘:cry: