Windows修改键位映射

键盘左Ctrl按键失灵,通过修改Windows注册表,使用CapsLock按键来代替左Ctrl。

我不知道从什么时候染上了坏习惯,保存文件时会不自觉地连续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 00 00 00固定格式,算第一个键位映射
  • 第二组:3a 00 1d 00,其中 3a 00Caps Lock1d 00Left Ctrl,表示Caps Lock 替换掉 Left Ctrl——即按下 Caps Lock 时,系统应该把它当作 Left Ctrl 被按下。这是第二个键位映射;
  • 第三组:1d e0 3a 00,其中 1d e0Right Ctrl,表示用 Right Ctrl 替换掉 Caps Lock。这是第三个键位映射;
  • 有需要了自己再向里面添加映射;
  • 映射个数:03 00 00 00,配置完所需的全部映射后,需要写下累计设置的映射个数。这个示例中我一共配置了3组映射。注意,由于第一组映射是固定的,所以映射个数这个字段的最小值为1;
  • 固定的开头:00 00 00 00 00 00 00 00
  • 打完收功。

对了,键位映射会在重启电脑后生效

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

退出移动版