我不知道从什么时候染上了坏习惯,保存文件时会不自觉地连续Ctrl-S。我是不是患上了强迫症…
直到有一天,小黑(ThinkPad)的左Ctrl彻底没了反应。没办法,只能键位映射了。
我没有采用 AHK 这类工具来映射,而是选择直接透过操作系统来达到目标。
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,e0,1d,00,3a,00,\
00,00,00,00
简单解释下上面注册表键值的含义,以免日后我自己迷糊:
在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout 下新建 二进制值 Scancode Map,值如下:
00 00 00 00 00 00 00 00
03 00 00 00 3a 00 1d e0
1d 00 3a 00 00 00 00 00
其值的含义是这样的:
- 从后向前,两组两组的读;
- 第一组:
00 0000 00,固定格式,算第一个键位映射; - 第二组:
3a 001d 00,其中3a 00是Caps Lock,1d 00是Left Ctrl,表示用Caps Lock替换掉Left Ctrl——即按下Caps Lock时,系统应该把它当作Left Ctrl被按下。这是第二个键位映射; - 第三组:
1d e03a 00,其中1d e0是Right Ctrl,表示用Right Ctrl替换掉Caps Lock。这是第三个键位映射; - 有需要了自己再向里面添加映射;
- 映射个数:
0300 00 00,配置完所需的全部映射后,需要写下累计设置的映射个数。这个示例中我一共配置了3组映射。注意,由于第一组映射是固定的,所以映射个数这个字段的最小值为1; - 固定的开头:
00 00 00 00 00 00 00 00; - 打完收功。
对了,键位映射会在重启电脑后生效。
