最近重新装了家里台式机电脑系统,但是发现键盘左侧和右侧的 ALT 与 WIN 键功能都颠倒了,搜索了很久资料也没有找到为什么会出现这种情况,但是解决办法还是有的。导入以下注册表即可让 ALT 和 WIN 键对换功能

1
2
3
4
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,38,00,5B,E0,5B,E0,38,00,00,00,00,00

以上注册表内容来自一篇文章,我根据这篇文章修改的具体内容,请参考:https://www.qiansw.com/windows-through-the-registry-to-make-ctrl-and-alt-swap.html

原文内容

重点分析上面代码中的那一长串二进制,为方便分析,拆分为每8位一行,并加上行号,结果如下:

1
2
3
4
5
6
7
"Scancode Map"=hex:
00,00,00,00,
00,00,00,00,
03,00,00,00,
38,00,1D,00,
1D,00,38,00,
00,00,00,00
  • 头两行和最后一行,是固定的,都是8个0。
  • 第3行,表示共更改了多少个按键,本例为3个,怎么算的?从第4行开始,到最末尾行(虽然严格来说末行不算),每行算1个,4、5、6行,刚好3个。
  • 第4行,前后各4位,分别代表某个按键。本例为将38,00的按键映射为1D,00。38,00代表Left alt键,1D,00代表Left ctrl键。
  • 第5行,同理,下一行即Left ctrl映射为Left alt。
  • 第6行,已经讲了,末行,固定8个0。如果需要增加更多的映射,可以在此行之上,不断加类似4、5行格式的。当然,最后的结果,还是要将各行合为一行的。

键值对照表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Escape             01 00
Tab 0F 00
Caps Lock 3A 00
Left Alt 38 00
Left Ctrl 1D 00
Left Shift 2A 00
Left Windows 5B E0
Right Alt 38 E0
Right Ctrl 1D E0
Right Shift 36 00
Right Windows 5C E0
Backspace 0E 00
Delete 53 E0
Enter 1C 00
Space 39 00
Insert 52 E0
HOME 47 E0
End 4F E0
Num Lock 45 00
Page Down 51 E0
Page Up 49 E0
Scroll Lock 46 00

更多键值对照表请访问:http://www.doc88.com/p-10453230875.html