Windows:修改键盘映射表

问题场景:最近在用Colabeler做数据集标注,但是发现了一些不方便的地方:工具选择键“R”、翻页键“Right、Left”、保存键“Ctril+S”这些键离得太远了,不方便一套连续操作做下来,而Colabeler又不能修改这些对快捷键的映射,因此只能考虑直接对系统修改键盘映射表了~

关于修改方法,可以用第三方软件来做,不过我这里就直接用最根本的方法,即修改注册表中的扫描码映射来解决~

本文部分参考自:https://zhuanlan.zhihu.com/p/29581818
Windows键值对照表:百度文库

(1)寻找扫描码

根据需求结合前文给出的“Windows键值对照表”,找到你需要修改的键值的扫描码

比如,我希望:“A”映射为“Left”,“F”映射为“Right”,“W”映射为“Ctrl”,“E”映射为“S”

那么,通过查表,可以得到如下结果:

A:1E 00
Left:4B E0
F:21 00
Rgiht:4D E0
W:11 00
Left Ctrl:1D 00
E:12 00
S:1F 00

(2)创建ScanCode Map

“Win+R”打开cmd,然后输入“regedit”回车打开注册表编辑器
找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout”
右键新建名为“ScanCode Map”的“二进制值”
在这里插入图片描述

(3)修改ScanCode Map

修改时需要遵从ScanCode Map的规则

(3.1)先填充8组00表示版本号和头部字节
(3.2)填充“xx 00 00 00”,其中"xx"代表映射数目
(3.3)按“目标字节码在前,源字节码在后”的原则继续填充
(3.4)最后填充4组00作为结束标志

PS:我下面的映射部分,重复调换地写了两遍,是为了实现两个键值功能的交换,而不是单纯用一个键去覆盖另一个键~
在这里插入图片描述

(4)重启计算机生效

由于我们是通过注册表在底层修改的映射表,因此需要重启计算机才能生效~

(5)取消设置

从注册表中删除创建的ScanCode Map这个键,或者用"hex:00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00"覆盖掉原来的值即可~

发布了52 篇原创文章 · 获赞 4 · 访问量 2121

猜你喜欢

转载自blog.csdn.net/qq_42191914/article/details/104840458