按键重映射

有时候键盘上没有多媒体按键, 这时候就要重新映射按键了
如果你买了一个键盘但是却没有多媒体按键, 那就只能苦逼的用鼠标加减音量, 用软件的全局快捷键来切歌? 不, 键盘上明明有很多根本用不上的按键, 比如最上面的一排FX(F5除外). 将这些按键变废为宝就是我们需要做的了.

说到这里, 我们可以将F1到F3变成音量调节的按键, F6-F8作为切歌的多媒体按键. 具体做法参照下面:

如果不想看原理, 点击这里下载已经写好的键盘映射:
(F1:静音, F2:减小音量, F3:增大音量, F6:上一曲, F7:暂停/播放, F8下一曲)

教程

我们使用注册表来进行键盘的重映射. 首先是找到注册表的位置: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout], 如果没有这个文件夹就新建一个

进入文件夹后找到"Scancode Map"这个键, 如果没有这个键就新建一个, 这个键值应该是二进制的.

  • 项值的格式如下(以16进制表示,每两个0表示一字节,分五部份):
  • “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 。
  • 第三部份:2个字节。表示替换后按键的”扫描码“。如:ESC 键的扫描码是 01 ,所以就表示 01 00 。再如 左Ctrl键扫描码是 1D 00, 而右Ctrl键是 1D E0 。
  • 第四部份:2个字节。表示原按键的”扫描码“。格式同上。
  • 第五部份:以四个 00 结束。

第二部分的映射按键总数包括最后面的结束标识符. 第三部分和第四部分可以改为不同的二进制码.

多媒体键简介

目前最常用的标准键盘是104键键盘,是在IBM定义的101键键盘标准上增加了两个Windows徽标键和一个右键菜单键而成,俗称Win95键盘。此类键盘一直沿用IBM标准,采用行列矩阵方式布局排列,称为扫描矩阵,扫描矩阵定义为8行×16列=128键。对于104键键盘而言,还有24个闲置键位未定义。107键键盘就是从这些闲置键位中选择了三个定义为“Power”、“Sleep”和“Wake UP”。后来微软又增加了18个键定义,用于完成音量调整、播放/暂停、打开浏览器等功能,为了方便,本文中我们将这18个键统称为多媒体键,部分键值详见下表:

注意:在注册表中输入时,需要将扫描码的高低字节交换一下

另外,如果想要某个键失效,将它的扫描码映射为“00 00”即可

若要恢复键盘键位原来的布局, 只需定位于注册表删除 Scancode Map 键值即可

键盘扫描码 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

Q.E.D.


工作中, 欢迎打扰