❤致敬所有与病毒战斗的可爱的工作者!

Windows系统屏蔽或重新映射任意键盘按键,如Caps Lock

2019-05-10 14:00:44

不管出于什么原因,你可能希望屏蔽一些键盘上的按键,让它们失效,比如大小写切换键Caps Lock。或者需要将某一个按键的功能改变,使它变成另外一个按键,重新映射按键。

下面要说的就是如何在Windows系统中达成上述的目的,虽然有很多软件工具可以实现,不过如果你不希望借助工具,并且不怕麻烦的话,可以通过注册表办到。

在开始菜单或者运行中输入 regedit 打开注册表编辑器,展开到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout,在Windows 10新版本中可以直接复制到注册表地址栏按Enter键定位。

右键点击Keyboard Layout,选择 新建 - 二进制值,命名为Scancode Map。

新建二进制值Scancode Map下面来说说如何为Scancode Map填充数据,以屏蔽Caps Lock键为例,可以将Scancode Map的数据修改为下面一串数字。

00 00 00 00 00 00 00 00 02 00 00 00 00 00 3a 00 00 00 00 00

了解下它的格式。

黑色部分,前面8对以及结尾4对0,你可以认为是固定格式。

青色部分,02 00 00 00,指明有多少个映射。什么是1个映射?后面的00 00 3a 00就是,由于结尾的4对0也算,所以映射的数量总是实际映射数量+1。

由于数据需要填充成4对的形式,所以数量为00 00 00 02,然后将它倒过来输入,为什么倒过来?你可以认为这是规定。注意同一对内的数字不要颠倒顺序。

如果你非常的疯狂,映射数量是10或者超过了,可不要直接写10,在16进制中只有0到9,a到f(代表10到15),16进制的10转化为10进制,是16。需要了解的话,可以打开Windows系统自带的计算器,切换到程序员模式,查看hex数据。

绿色部分00 00 3a 00,如上述颜色所示,它们分为2个部分,目的是把3a 00(Caps Lock键)映射为00 00(空)。这些数字被称为扫描码,Caps Lock键的16进制扫描码是3a,填充成2对,为00 3a,然后倒序输入。

屏蔽Caps Lock再举个例子,屏蔽Tab键,将Caps Lock键映射为Tab键。

Tab键的16进制扫描码为0f,Caps Lock键的扫描码为3a,需要做2对映射,所以映射数量为3。按照上述组织数据的方法,最终需要填入的数据为:

00 00 00 00 00 00 00 00 03 00 00 00 00 00 0f 00 0f 00 3a 00 00 00 00 00

修改完成后重新启动生效。此修改会影响所有用户,若要恢复,可以将Scancode Map删除。

大多数按键对应的扫描码(Scan code)可以查看这个页面:http://www.ee.bgu.ac.il/~microlab/MicroLab/Labs/ScanCodes.htm

本文链接 : https://www.xstui.com/read/771