用注册表互换windows系统的键盘按键(支持多个)

比如在 MacBook 上装了windows,键盘的 alt 和 LWin 是反的,这样就很难受,所以用此法可完全解决。

示例和原理见下面介绍,附件是直接可用的注册表文件。

注册表修改按键.zip

LWin和LAlt互换:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMControlSet001ControlKeyboard 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

备用
TAB 键映射为 Print screen 键
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,0F,00,37,E0,00,00,00,00
LCtrl和LAlt键互换
"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
天甜的3键互换
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,5c,e0,5b,e0,5b,e0,3a,00,3a,00,1d,e0,00,00,00,00

详细介绍
项值的格式如下(以16进制表示,每两个0表示一字节,分五部份):
①00,00,00,00,00,00,00,00,
版本号,照例写
②02,00,00,00,
表示映射键的总数。按照二进制数的读写规则,低位在左,高位在右,02 00 00 00 这个数实际就是:00 00 00 02。
1个映射键是 02,2个(两个键互换)是03 ,依次递加,十个是 0B。
③01,00,
表示替换后按键的扫描码。
④02,00,
表示原按键的扫描码。
⑤00,00,00,00
以四个 00 结束。

实例:
如将 TAB 键映射为 Print screen 键。TAB 键的扫描码是 0F ,Print screen 键的扫描码是 0xE037。那么
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,0F,00,37,E0,00,00,00,00

附录:键盘扫描码。以十六进制表示,分两部份,0x后面两个数是扫描码,最后两个数是ASCII 码(可忽略)。
LCrtl 扫描码是0x001d, 表示1d 00 RCtrl 扫描码是0xe01d,表示1d e0
LWin 扫描码是0xe05b, 表示5b e0 RWin 扫描码是0xe05c, 表示5c e0
扫描码 键
0x2960 ~
0x0b30 0
0x0231 1
0x0332 2
0x0433 3
0x0534 4
0x0635 5
0x0736 6
0x0837 7
0x0938 8
0x0a39 9
0x0c2d -
0x0d3d =
0x2b5c "
0x0e08 BackSpace
0x0f09 Tab
0x1071 q
0x1177 w
0x1265 e
0x1372 r
0x1474 t
0x1579 y
0x1675 u
0x1769 i
0x186f o
0x1970 p
0x1a5b [
0x1b5d ]
0x1e61 a
0x1f73 s
0x2064 d
0x2166 f
0x2267 g
0x2368 h
0x246a j
0x256b k
0x266c l
0x273b ;
0x2827 '
0x1c0d Enter
0x2c7a z
0x2d78 x
0x2e63 c
0x2f76 v
0x3062 b
0x316e n
0x326d m
0x332c ,
0x342e .
0x352f /
0x3920 Space
右边数字键盘:
0x5200 Insert
0x4700 Home
0x4900 Page UP
0x5300 Delete
0x4f00 End
0x5100 PageDown
0x4800 ↑
0x4b00 ←
0x5000 ↓
0x4d00 →
0x352f /
0x372a *
0x4a2d - (注意,这是数字键盘的)
0x4737 7
0x4838 8
0x4939 9
0x4b34 4
0x4c35 5
0x4d36 6
0x4e2b +
0x4f31 1
0x5032 2
0x5133 3
0x5230 0
0x532e Del