妙用注册表 空手打造多媒体键盘

现在许多高档的多媒体键盘都有一些附加的功能键 , 通过这些功能键可以方便地实现音量调节、网页浏览、收发邮件等功能 。只须手指轻轻一按 , 即可轻松遨游互联网络及多媒体世界 , 看着别人一键定乾坤的样子实在有点羡慕 , 无奈身上银子不多消受不起 , 难道就没有办法了吗?
非也!实际上微软在Windows XP/Windows 2000 系统中 , 提供了一种新的键盘扫描码映射方法 , 使你能随意地设置键盘键位的布局 , 这就是注册表中的 “Scancode Map”(这可算是微软的一点人性化设计 , 不过遗憾的是大多数人并不“领情”) 。我们巧妙利用“Scancode Map”就可将普通键盘改造成准多媒体键盘 。
而能改造的原因就在于多媒体键盘上的功能键通常也是通过扫描码(键盘处理器大部分时间在“扫描”, 监视着键矩阵. 一旦发现有键被按下,释放,或被按住不放 , 键盘处理器就会向计算机发送一个数据包,称为键盘扫描码)来实现的 , 因而在普通键盘上 , 只要将其他键位映射到这些功能键上即可实现这些功能 。因而 , 我们的思路就是妙用注册表将键盘上一些比较“闲置”的键改造成功能键 。下面我们就一起来将打造成多媒体键盘 。
什么是“Scancode Map”?
我们有必要先了解一下“Scancode Map”(扫描码映射) , “Scancode Map”是注册表中[HKEY_LOCAL_MacHINESYSTEMCurrentControlSetControlKeyboard Layout]中的一个二进制键值(默认没有 , 需新建) , 并且有固定的格式 。Scancode Map 代码的一般格式是:“hex:00,00,00,00,00,00,00,00,|02|,00,00,00,|原键,替代键,原键,替代键,|00,00,00,00” 。其含义为:前8个00(DWord两个0)是版本号 , 接下来的“02”表示映射数 , 其最小为值为“02” , 表示只映射一组 , 若要映射多组 , 只需增加相应的值即可 , 如映射2组其值应为“03”,3组为“04”;后边代码每4个是一组:前两个是映射后键位的扫描码 , 后两个是键位原扫描码 。如果要交换两个键 , 则最后四个值的排列形式是:键A , 键B , 键B , 键A——它表示:键A成为键B , 键B成为键A 。最后以“00,00,00,00” 结尾 。了解了“Scancode Map”之后 , 我们就可以来利用添加功能键了 。
1.调节音量功能键
现在许多多媒体键盘基本都有音量调节的功能键 , 当然利用一些小软件也可实现 , 而实际上利用“Scancode Map”更简单有效 , 下面的方法可将F9、F10改为音量控制键 。
从图一(常用的可实现的功能键的扫描码)中查出Volume Up、Volume Down的扫描码分别为(E0 , 30)、(E0,2E) , (Fn和WINS等键位的扫描码)中查出F9、F10扫描码分别为(00 , 43)、(00,44),注意在注册表中需要将二进制值的高低字节交换一下 , 套用上面的“Scancode Map”格式 , "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 , 因而将下面的内容输入记事本 , 另存为win.reg文件并双击导入注册表 , :
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout]
"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
然后重启电脑后 , F9、F10就变成音量控制键 , 能一键调节音量大小了 。我们还可以将F12改造成静音键 , 代码为:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,20,E0,58,00,00,00,00,00
2.网页浏览功能键
同样的道理 , 我们可将右Windows徽标键改为一键打开主页 , 代码如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MacHINESYSTEMCurrentControlSetControlKeyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,32,E0,5C,E0,00,00,00,00

推荐阅读