前言
在使用软件的时候,快捷键最常用的组合键就是Ctrl,而qwerty键盘的Ctrl位置比较反人类,如果你经常使用vim Emacs这样的编辑器的时候,Ctrl的位置导致小拇指抽筋不是梦。而CapsLK的用处不大但是占用了非常好的位置,这就需要我们来互换他们的键位映射。
更改方法
在win7及以后的windows操作系统中,可以直接通过修改注册表的方式来修改键位。
更改
新建一个文本文件将其改名为capslk_leftctrl_switch.reg (注意一定要将txt后缀名给删除了,默认情况下windows会隐藏常用类型的后缀名),将以下内容复制进去,然后双击执行就可以了。
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,1d,00,3a,00,3a,00,1d,00,00,00,00,00
恢复
如果你想要恢复这个设置就创建如下的reg注册表脚本:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Control\Keyboard Layout]
"Scancode Map"=-
当然聪明如你一定也发现了,我们可以直接打开注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Control\Keyboard Layout删除其中的Scancode Map键就可以了。
总结
如果还是不知道怎么操作,下面直接奉上脚本供君食用,要注意呦以上所有操作都重启后生效:
CapLock与Ctrl互换
恢复键位互换
P.S.
最直接的还是直接上HHKB键盘,一步到位不纠结,就是钱包惹不起。
HHKB键位图
原理说明
如果你仅仅是为了互换CapLock和Ctrl键位到就不需要看以下内容了,但是你想更加深入的了解windows下键盘映射的原理以及其他需求,那么这部分内容就是你的菜了。
键盘映射
在windows中通过在注册表中添加Scancode Map项来达到键盘映射的目的,Scancode Map项位于注册表的[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Control\Keyboard Layout]中(默认是不存在的)固定格式如下:
hex:[填充八个 00] [映射项数] [填充3个 00] [映射后ScanCode 原ScanCode] [填充4个00]
映射项数:02 表示只映射一组,03表示映射两组,以此类推
映射后ScanCode 原ScanCode码:例如CapsLock的ScanCode为3A 00而Ctrl为1D 00那么为了将他们互换就使用1D 00 3A 00,当然还需要让Ctrl映射成CapsLock就是 3A 00 1D 00
终上所述即:00,00,00,00,00,00,00,00,03,00,00,00,1D,00,3A,00,3A,00,1D,00,00,00,00,00
举例
现在提出更高级的将F9和F10映射为音乐的开始暂停键即Play Stop键。他们的Code分别对应:
| 按键 | ScanCode |
|---|---|
| F9 | 43 00 |
| F10 | 44 00 |
| Play/Pause | 22 E0 |
| Stop | 24 E0 |
所以修改的结果就是:
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,43,00,22,E0,44,00,23,E0,00,00,00,00
ScanCode码
好事做到底,送人送到家,你一定会要的 键盘映射之ScanCode码








网友评论