win7 注册表改键位

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
“Scancode Map”=hex:00,00,00,00,00,00,00,00,02,00,00,00,3a,00,2a,00,00,00,00,00

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
“Scancode Map”=hex:00,00,00,00,00,00,00,00,03,00,00,00,3B,00,43,00,43,00,3B,00,00,00,00,00

——————————————————————————————————————–保存为.reg文件导入注册表,重启电脑

02,00,00,00表示2个按键

3a,00表示CapsLock键,2a,00表示左shift键

键盘扫描码

2018年04月13日 11:36:12 Kiopler 阅读数:2081

转载: http://www.mouseos.com/os/doc/scan_code.html

当按下一键时,产生 mark 码,产生一次 IRQ1 中断。

放开键时,产生 break 码,产生一次 IRQ1 中断。

因此:当按下 A 键放开,实际上产生了两次 IRQ1 中断

break 是 mark 码的 bit7 置 1 得来,也就是: break = mark + 0x80

1、scan code 集

这里只说一般日常应用中的键盘码集 set 2(有 set 1、set 2 以及 set 3)

  • 基本 scan code:绝大多数 scan code 是 1 byte 的。
  • 扩展 scan code:由 e0e1 或 e2 引导
  • 特殊的 PrintScreen/SysRq 键:e0 2a e0 37
  • 物殊的 Pause/Break 键:e1 1d 45 e1 9d c5

2、小键盘 scan code 表

keymark(Hex)break(Hex)描述
NumLock45c5break = mark + 0x80
/e0 35e0 b5由 e0 引导出 extend scan code
*37b7break = mark + 0x80
4aca同上
7/Home47c7同上
8/Up48c8同上
9/PgUp49c9同上
4/Left4bcb同上
54ccc同上
6/Right4dcd同上
1/End4fcf同上
2/Down50d0同上
3/PgDn51d1同上
0/Ins52d2同上
./Del53d3同上
+4ece同上
Entere0 1ce0 9cextend scan code

小键盘中的 <home><Up><PgUp><Left><Right><End><Down><PgDn><Ins><Del> 由 NumLock 按下后再按得来。

因此,会产生一个 <NumLock> mark 码后,再产生上述的 mark 码。 释放 <NumLock> 又产生一个 break 码。

3、附加键 scan code 表

keymark(Hex)break(Hex)描述
PrintScreen/SysRqe0 2a e0 37e0 b7 e0 aaextend scan code
Scroll Lock46c6同上
Pause/Breake1 1d 45 e1 9d c5*同上
Inserte0 52e0 d2同上
Homee0 47e0 c7同上
Page Upe0 49e0 c9同上
Deletee0 53e0 d3同上
Ende0 4fe0 cf同上
Page Downe0 51e0 d1同上
lefte0 46e0 c6同上
righte0 4de0 cd同上
upe0 48e0 c8同上
downe0 50e0 d0同上

抱歉:我对 PrintScreen/SysRq 和 Pause/Break 的理解未透彻。在这不便讲解。

如果您知道,请留言赐教。

4、功能键 scan code 表

keymark(Hex)break(Hex)描述
<esc>0181scan code
F13bbb同上
F23cbc同上
F33dbd同上
F43ebe同上
F53fbf同上
F640c0同上
F741c1同上
F842c2同上
F943c3同上
F1044c4同上
F1157d7同上
F1258d8同上

5、主键盘 scan code 表

keymarkbreakkeymarkbreakkeymarkbreakkeymarkbreak
~/·29a9<tab>0f8f<scapslock>3aba<L-shift>2aaa
!/10282q1090a1e9ez2cac
@/20383w1191s1f9fx2dad
#/30484e1212d20a0c2eae
$/40585r1393f21a1v2faf
%/50686t1494g22a2b30b0
^/60787y1595h23a3n31b1
&/70888u1696j24a4m32b2
*/80989i1797k25a5</,33b3
(/90a8ao1898l26a6>/.34b4
)/00b8bp1999:/;27a7?//35b5
_/-0c8c{/[1a9a“/’28a8<R-shift>36b6
+/=0d8d}/]1b9b<Enter>1c9c<L-ctrl>1d9d
|/\2bab<L-alt>38b8
<backspace>0e8e<space>39b9
<R-alt>e0 38e0 b8
<R-ctrl>e0 1de0 9d

若输入字符“ABCD”有两种方法

(1)按下 <CapsLock> 键后,再输入 abcd 键,再按 <CapsLock> 键

这样会产生一个 <CapsLock> 键 mark 和 break 码,然后依次是 abcd 的 mark 和 break 码, 最后是 <CapsLock> 的 mark 和 break 码

(2)按着 <L-shift> 或 <R-shift> 不放,再按 abcd 键,再放开 <L-shift> 或 <R-shift> 键

这样会产生一个 <L-shift> 或 <R-shift> 键的 mark 码,然后依次是 abcd 的 mark 和 break 码,最后是一个 <L-shift> 或 <R-shift> 键的 break 码

Article By :

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注