Windows 上借助注册表来修改键盘按键的映射

Windows 上借助注册表来修改键盘按键的映射
转载自:https://flyzto.com/windows-scancode-map.html

背景

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

在 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 版本下面,对键盘映射是全局的,而不是针对某个用户的,如果修改添加或者删除了某个映射,那么不管哪个用户使用,键盘都发生了变化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值