背景
在使用电脑的过程中会发现,键盘上很多按键我们平时根本使用不到,但是如果我们不小心碰到了一些按键,将会导致我们无法正常使用键盘,这种情况下,这个按键对我们没有一点好处,并且还是影响我们的使用,那么有什么办法来更改键盘按键的映射吗?其实这个方法很多,本文将给大家介绍借助注册表来修改键盘按键映射的方法
在 Windows系统中,提供了一种键盘扫描码映射方法,使你能随意地设置键盘键位的布局,这就是注册表中的 Scancode Map
; 我们巧妙利用 Scancode Map
就可将普通键盘改造成随心随意的个性化键盘
原理
为了正确设置,我们有必要先了解一下 Scancode Map
(扫描码映射)
Scancode Map
是注册表中
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
中的一个二进制键值(默认没有,需新建),并且有固定的格式
Scancode Map
代码的一般格式是
hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,02,00,00,00,00,00
其含义为:
- 第一部份:8 个 00 ,这是版本信息号。照例写就是了
- 第二部份:4 个字节。表示映射键的总数。按照二进制数的读写规则,低位在左,高位在右,02 00 00 00 这个数实际就是:00 00 00 02 。 从 02 开始,一个映射键是 02 ,两个是03 ,依次递加,十个是 0B
- 第三部份:每 4 个是一组,前两个是映射后键位的扫描码,后两个是键位原扫描码
- 第五部份:以 4 个 00 结束
注意:在注册表中输入时,需要将扫描码的高低字节交换一下
另外,如果想要某个键失效,将它的扫描码映射为“00 00”即可
若要恢复键盘键位原来的布局,只需定位于注册表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
删除 Scancode Map
键值即可
应用
了解了 Scancode Map
之后,我们就可以来利用添加功能键了。比如 Win 键扫描码为 E0 5B
,Esc 为 00 01
,左 Ctrl 为 00 1D
,更详细的扫描码请见键盘扫描码
如果我们想把 F9、F10 键修改成为音量调整键,通过查表,可以得知
F9、F10 扫描码分别为 00 43
、00 44
Volume Up、Volume Down 扫描码分别为 E0 30
、E0 2E
这样只要将 Scancode 设置为如下就可以了
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,30,E0,43,00,2E,E0,44,00,00,00,00,00
在目前的 Windows 版本下面,对键盘映射是全局的,而不是针对某个用户的,如果修改添加或者删除了某个映射,那么不管哪个用户使用,键盘都发生了变化
键盘扫描码 Scancode
key | mark | key | mark | key | mark | key | mark |
主键盘 | |||||||
~/· | 29 | Tab | 0f | Caps Lock | 3a | L-shift | 2a |
!/1 | 2 | q | 10 | a | 1e | z | 2c |
@/2 | 3 | w | 11 | s | 1f | x | 2d |
#/3 | 4 | e | 12 | d | 20 | c | 2e |
$/4 | 5 | r | 13 | f | 21 | v | 2f |
%/5 | 6 | t | 14 | g | 22 | b | 30 |
^/6 | 7 | y | 15 | h | 23 | n | 31 |
&/7 | 8 | u | 16 | j | 24 | m | 32 |
/8 | 9 | i | 17 | k | 25 | </, | 33 |
(/9 | 0a | o | 18 | l | 26 | >/. | 34 |
)/0 | 0b | p | 19 | :/; | 27 | ? | 35 |
_/- | 0c | {/[ | 1a | "/‘ | 28 | R-shift | 36 |
+/= | 0d | }/] | 1b | Enter | 1c | L-ctrl | 1d |
|/\ | 2b | L-alt | 38 | ||||
Backspace | 0e | Space | 39 | ||||
R-alt | e0 38 | ||||||
R-ctrl | e0 1d | ||||||
小键盘 | |||||||
NumLock | 45 | 8/Up | 48 | 1/End | 4f | + | 4e |
/ | e0 35 | 9/PgUp | 49 | 2/Down | 50 | Enter | e0 1c |
37 | 4/Left | 4b | 3/PgDn | 51 | |||
- | 4a | 5 | 4c | 0/Ins | 52 | ||
7/Home | 47 | 6/Right | 4d | ./Del | 53 | ||
附加键 | |||||||
Scroll Lock | 46 | Page Up | e0 49 | Page Down | e0 51 | Up | e0 48 |
Insert | e0 52 | Delete | e0 53 | Left | e0 46 | Down | e0 50 |
Home | e0 47 | End | e0 4f | Right | e0 4d | ||
功能键 | |||||||
Esc | 1 | F1 | 3b | F5 | 3f | F9 | 43 |
F2 | 3c | F6 | 40 | F10 | 44 | ||
F3 | 3d | F7 | 41 | F11 | 57 | ||
F4 | 3e | F8 | 42 | F12 | 58 | ||
媒体键 | |||||||
Mute | e0 20 | Paly/Pasue | e0 22 | Volume Down | e0 2e | Stop | e0 24 |
Next Track | e0 19 | Prev Track | e0 10 | Volume Up | e0 30 |