「Windows技巧」通过注册列表切换键盘键位

起因

无论是在Windows还是OS X 系统下,快捷键都是十分常用的。

常用快捷键基本上都是:Ctrl/Command+*

而这两个键在键盘上对应的位置是不同的,Command在Alt键位上(以Windows标准键盘为参照,下同)。

经过长时间的使用发现,Alt键位(大拇指按)要比Ctrl键位(小拇指按)舒适得多,于是希望通过改键的方式将Windows下的Ctrl键和Alt键做交换。

解决

在记事本上复制以下代码,并保存为Ctrl2Alt.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard 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

运行文件

重启电脑

Just enjoy it.

原理

"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
长串二进制,为方便分析,拆分为每8位一行,并加上行号,结果如下:
"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

前两行,固定8个0

第3行,表示共更改了多少个映射,本例为3,从第4行开始,到最末尾行(虽然严格来说末行不算),4、5、6行,刚好3个。

第4行,前后各4位,分别代表两个按键,前者映射成后者。本例,为将38,00的按键映射为1D,00。38,00代表Left alt键,1D,00代表Left ctrl键。

第5行,同理,Left ctrl映射为Left alt。

末行,  固定8个0。

如果需要增加更多的映射,可以在末行前加入如4、5行的格式编码,修改第三行的映射数,最后将各行合为一行。

附录

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

原文地址:https://www.cnblogs.com/777777-716/p/5014863.html