背景
在使用电脑的过程中会发现,键盘上很多按键我们平时根本使用不到,但是如果我们不小心碰到了一些按键,将会导致我们无法正常使用键盘,这种情况下,这个按键对我们没有一点好处,并且还是影响我们的使用,那么有什么办法来更改键盘按键的映射吗?其实这个方法很多,本文将给大家介绍借助注册表来修改键盘按键映射的方法
在 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 | ||