Windows下通过修改注册表设置按键映射

第一部分:前情提要

先是一些前情提要的废话,查看按键映射的教程可以直接跳到第二部分。

最近热衷于捡垃圾,今天回乡下家里,把大学时候买的组装电脑挖了出来,准备重新通电,看看能不能废物利用,升级一下继续发光发热。

主机升级不着急,先从清理配件开始。当时从一个国内模仿woot的网站—— 人人购 ,一个浙大学生的项目,多年前已经gg ——买的一块蓝标IBM的键盘,清灰以后插上电脑,还能正常用,但有一个非常影响日常使用的问题:没有win键。我已经习惯了一些常用功能的win组合快捷键,没有win键让我用电脑的时候非常不爽,所以开始找按键映射的方案。

网上能搜到很多设置按键映射的文章,但中文互联网的内容质量参差不齐,而且文章中提供的方案中,很多app早已经停止维护。在尝试了多个方案以后(中间我甚至阅读了一个小时的AutoHotKey的教程),最后选择了最直接的修改注册表来实现按键映射。


第二部分:设置按键映射

前面几个步骤快速略过,

1-启动注册表编辑器。

2-定位到「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout」。

3-新建一个「二进制数值」,名称为「Scancode Map」。


4-输入按键映射的数值,保存。


5-重启电脑使配置生效。

数值规则:

第一行:00 00 00 00 00 00 00 00, 8组0,固定格式,指版本号和头部字节,照样输入即可。

第二行前4组数字:02 00 00 00,需要设置的按键映射数,如A映射为B即是一组为02,两组为03,依次往上加即可。这里实测敲01 00 00 00也能正常生效,不同教程里各自有不同解释(解释一 / 解释二),可自行查阅。

第二行后4组数字:5B E0 38 00。这里分前2组和后2组,各自对应一个按键编码。「5B E0」为目标映射按键左win键,「38 00」为源按键左Alt。如果有更多的按键映射,依次在后面输入编码即可。自动换行可以无视。

最后4组数字:00 00 00 00,4组0,固定格式,照样输入即可。


按键编码表:这里直接照搬其他文章中的编码表

以十六进制表示,分两部份,0X后面两个数是扫描码,最后两个数是ASCII码(可忽略)。如0x011b是ESC,扫描码是01。

扫描码    键

0X011B ESC

0X3B00 F1

0X3C00 F2

0X3D00 F3

0X3E00 F4

0X3F00 F5

0X4000 F6

0X4100 F7

0X4200 F8

0X4300 F9

0X4400 F10


主键盘区:

0X2960 ~

0X0231 1

0X0332 2

0X0433 3

0X0534 4

0X0635 5

0X0736 6

0X0837 7

0X0938 8

0X0A39 9

0X0B30 0

0X0C2D -

0X0D3D =

0X2B5C "

0X0E08 退格键

0X0F09 TAB

0X1071 Q

0X1177 W

0X1265 E

0X1372 R

0X1474 T

0X1579 Y

0X1675 U

0X1769 I

0X186F O

0X1970 P

0X1A5B [

0X1B5D ]

0X1E61 A

0X1F73 S

0X2064 D

0X2166 F

0X2267 G

0X2368 H

0X246A J

0X256B K

0X266C L

0X273B ;

0X2827 '

0X1C0D 回车

0X2C7A Z

0X2D78 X

0X2E63 C

0X2F76 V

0X3062 B

0X316E N

0X326D M

0X332C ,

0X342E .

0X352F /

0X3920 空格键

右边数字键盘:

0X5200 INSERT

0X4700 HOME

0X4900 PAGE UP

0X5300 DELETE

0X4F00 END

0X5100 PAGEDOWN

0X4800 上箭头

0X4B00 左箭头

0X5000 下箭头

0X4D00 右箭头

0X352F /

0X372A *

0X4A2D - (注意,这是数字键盘的)

0X4737 7

0X4838 8

0X4939 9

0X4B34 4

0X4C35 5

0X4D36 6

0X4E2B +

0X4F31 1

0X5032 2

0X5133 3

0X5230 0

0X532E DEL

左 Crtl 扫描码是 1D ,表示 1D 00 , 右 Ctrl 键扫描码是 E01D,表示 1D E0。

左 ALT 扫描码是 38 ,表示 38 00 ,右 ALT 键扫描码是 E0 38,表示 38 E0。

左 Shift 扫描码是 2A ,表示 2A 00, 右 Shift 键扫描码是 36 ,表示 36 00。

补充:

有推友提到微软官方有一款软件Windows Resource Kit Tools自带的remap能实现这个功能,原理也是修改注册表,但毕竟有GUI,方便用户操作。但我在网上搜寻一番后,发现这款软件应该已经停更多年,而且较难找到下载资源。不过依然写在文章最后,提供一个思路。

你可能感兴趣的:(Windows下通过修改注册表设置按键映射)