市面上的许多笔记本电脑产品的键盘,对于我来说消失了一个满重要的键位Application 键, 这个键的主要作用是弹出一个上下文快捷菜单,可以看作键盘上的鼠标右键。

  缺少了这个键有什么影响呢? 一些软件按下 “Shift +F10” 无法弹出快捷菜单,必须按下 Application 键。 对于常用键盘的我来说,丢了这个键,可谓很不方便了。

  所以这里介绍一种利用注册表更改键盘映射关系的方法,把键盘右侧的 Ctrl 替换成 Application 键,再把 Application 键替换成右侧 Ctrl 键。

  至于为什么要把 Application 替换成右侧的 Ctrl 键呢? 主要考虑到插入 USB 键盘还想有一个右 Ctrl 键。

交换方法

  1.   把下面的注册表文件内容复制到一个记事本文档中;
  2. 在 “文件” 菜单中选择 “另存为” 一项, 在文件名 处写上一个名字,后面加上 “.reg”,在文件类型中选择 所有文件 (*.*) 并按下 “保存” 按钮;
  3.   打开保存的文件,根据提示导入到注册表中,接着重启计算机就可以应用更改了。
Windows Registry Editor Version 5.00
; Right Ctrl key and Application key exchange location.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,5D,E0,1D,E0,1D,E0,5D,E0,00,00,00,00

  P.S.: 键盘映射会影响到所有插入的键盘。

原理解释

  在 Windows 2000 /XP 以后的 Windows 系统中,自带了一个扫描码映射器。通过扫描码映射器可以把一个键修改成另外一个键。利用它可以纠正键盘上错误的布局、调换两个键位等功能。

  关于 扫描码映射器 的配置存储在注册表中的以下项里面: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

  新建一个名为 “Scancode Map”REG_(little Endian 格式) 的值。 这里注意其类型是 REG_(little Endian 格式)的值, 想存储数值 1, 如果使用 4 字节存储的话,应该写成 01,00,00,00。具体可以查找有关于字节序的资料。

  那么 00,00,00,00,00,00,00,00,03,00,00,00,5D,E0,1D,E0,1D,E0,5D,E0,00,00,00,00 又是什么含义呢?

  这里我们把 4 字节看作一个组,可以分成下面的几个部分:

组号含义
1 00, 00, 00, 00 版本信息,直接全部填写 0 就可以了
2 00,00,00,00 Flags 标志, 同上,填 0
303, 00, 00, 00映射数目, 映射的组数 + 最后的一组 0 作为结束符标志
45D, E0, 1D, E0 一组映射, 0X5DE01DE0 就是 右 Ctrl (0X5DE0) -> Application 键 (0X1DE0)
51D,E0, 5D,, E0另一组映射, 0X1DE05DE0, 反过来, Application 映射到 右 Ctrl
600, 00, 00, 00最后一组映射,全部填写 0 作为结束标志

参考链接

键盘和鼠标类驱动程序 - Windows drivers | Microsoft Docs

键盘的扫描码Scan Code,通码Make code,断码Break Code - 在线笔记 - CSDN博客

Keyboard scancodes

Scancode - wikipedia

标签: Windows 10, 键盘

添加新评论