「Windows技巧」通过注册列表切换键盘键位
起因
无论是在Windows还是OS X 系统下,快捷键都是十分常用的。
常用快捷键基本上都是:Ctrl/Command+*
而这两个键在键盘上对应的位置是不同的,Command在Alt键位上(以Windows标准键盘为参照,下同)。
经过长时间的使用发现,Alt键位(大拇指按)要比Ctrl键位(小拇指按)舒适得多,于是希望通过改键的方式将Windows下的Ctrl键和Alt键做交换。
解决
在记事本上复制以下代码,并保存为Ctrl2Alt.reg
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
运行文件
重启电脑
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