原理篇
在注册表位置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\项目
或者
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet004\Control\Keyboard Layout\ 项目中
可以新建一个二进制值项:Scancode Map 。(在以上两个位置任意一个建立皆可)
这个项目可实现对键盘按键的映射。这里映射的意思可理解为“替换”,可将任意一键替换成其它键。
项值的格式如下(以16进制表示,每两个0表示一字节,分五部份):
“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 。
第三部份:2个字节。表示替换后按键的”扫描码“。如:ESC 键的扫描码是 01 ,所以就表示 01 00 。再如 左Ctrl键扫描码是 1D 00, 而右Ctrl键是 1D E0 。
在注册表位置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\项目
或者
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet004\Control\Keyboard Layout\ 项目中
可以新建一个二进制值项:Scancode Map 。(在以上两个位置任意一个建立皆可)
这个项目可实现对键盘按键的映射。这里映射的意思可理解为“替换”,可将任意一键替换成其它键。
项值的格式如下(以16进制表示,每两个0表示一字节,分五部份):
“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 。
第三部份:2个字节。表示替换后按键的”扫描码“。如:ESC 键的扫描码是 01 ,所以就表示 01 00 。再如 左Ctrl键扫描码是 1D 00, 而右Ctrl键是 1D E0 。
