Windows如何禁用键盘按键或者映射到其他按键

643 阅读2分钟

背景

我们PC的键盘设计得比较奇怪,在最后那一列放着Home按键,而且与Backspace按键是靠近的,导致很多用户在使用Backspace的时候按到了Home键,导致光标回到了当前当前编辑文档的最前面,用户很吐槽。如果要改硬件(模具)时间比较长,用户等不了,所以就跟用户提了一个办法,就是将Home键的功能映射到Backspace按键功能,让用户无感知是按到了Home键。 先看下这个设计: image.png 可怕的设计! 那问题就来了,如何做这个映射的操作呢?

解决方案(2种方案)

第一种:使用PowerToys的键盘管理器

image.png

image.png 注意:当设置了映射关系之后,如果将PowerToys的进程退出了或者卸载了PowerToys,此功能也失效了! 下载链接:PowerToys最新版本下载 (可以使用最新版本的,Machine wide-x64,目前这个时间最新版本是v0.79.0)

第二种:使用SharpKeys的Map功能(推荐使用)

image.png

image.png

image.png 原理:修改注册表中的扫描码映射

  • 在 Windows 注册表中,有一个特定的键(通常是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout)包含一个名为 Scancode Map 的值。
  • Scancode Map 用于定义按键扫描码之间的映射关系。通过修改这个值,可以改变特定按键的行为,即将一个按键的扫描码映射到另一个按键的扫描码上,或者完全禁用某个按键(通过映射到一个无效的扫描码)

下载地址:github.com/randyrants/…
优点:即使卸载了软件,修改仍会生效

最后

这里只介绍了2种方案,但还有其他的方案也不错,但我没有试过,比如AutoHotkeyMicrosoft Keyboard Layout CreatorKeyTweakInterception 等。