将键盘左边 Ctrl 按键和左边 Alt 按键互换的实现方法

习惯了使用 Mac 的快捷键,换回 Windows 之后有些不适应,所以想将键盘左侧的 ctrl 键与左边的 alt 键互换。大致上有两种解决办法。

使用 PowerToys 软件

PowerToys 是微软自家的软件,功能强大,使用它能够方便快捷地帮我们解决问题。

实现方法是启用键盘管理器,之后在 重映射键 中实现这个功能,具体设置看图:

注册表法

第二种方式是注册表法,将以下内容保存到 txt 文本文档中:

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,38,00,1D,00,1D,00,38,00,00,00,00,00
ShellScript

之后重命名为 .reg 文件,例如 1.reg,双击 1.reg 将注册表导入,之后重启电脑即可生效。

如果不想用了,再在注册表中的文件删除即可,具体位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map,删除 Scancode Map 文件。如果只是单独映射这一个键,可以用这个方法,如果又要改键,又要修改快捷键映射,还是建议使用 PowerToys 软件。

附加以上注册表内容的说明,感兴趣的小伙伴可以研究一下:

"Scancode Map"=hex:
00,00,00,00,//头两行和最后一行,是固定的,都是8个0。
00,00,00,00,
03,00,00,00,//第3行,表示共更改了多少个按键,本例为3个,怎么算的?从第4行开始,到最末尾行(虽然严格来说末行不算),每行算1个,4、5、6行,刚好3个。
38,00,1D,00,//第4行,前后各4位,分别代表某个按键。本例为将38,00的按键映射为1D,00。38,00代表Left alt键,1D,00代表Left ctrl键。
1D,00,38,00,//第5行,同理,下一行即Left ctrl映射为Left alt。
00,00,00,00//第6行,已经讲了,末行,固定8个0。如果需要增加更多的映射,可以在此行之上,不断加类似4、5行格式的。当然,最后的结果,还是要将各行合为一行的。
ShellScript

键位映射表:

Escape             01 00
Tab              0F 00
Caps Lock          3A 00
Left Alt           38 00
Left Ctrl          1D 00
Left Shift         2A 00
Left Windows       5B E0
Right Alt          38 E0
Right Ctrl         1D E0
Right Shift        36 00
Right Windows      5C E0
Backspace          0E 00
Delete             53 E0
Enter              1C 00
Space              39 00
Insert             52 E0
HOME               47 E0
End                4F E0
Num Lock           45 00
Page Down          51 E0
Page Up            49 E0
Scroll Lock        46 00
还有一个特殊的值——00 00,表示啥也不干,如果要将某个按键禁用,只需映射为00 00
ShellScript
点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注