Windows 修改注册表实现键位修改

windows 修改 Scancode Map 实现键位修改

一、修改步骤

  1. open regedit

    cmd - regedit 打开注册表

  2. 进入目录 "计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout"

  3. 右键新建二进制值文件,并命名为 ScanCode Map

  4. 按规则编辑文件

  5. 注销或重启计算机即可用,不再使用则删除该表即可
    在这里插入图片描述

【注:这幅图中键位扫描码填反了,按照下面那幅图填写】

上面的所有值都是由16进制表示,即 两个一组的值表示 一个字节 : 例如 00 00 00

注意:在注册表中输入时,需要将扫描码的高低字节交换一下
在这里插入图片描述

1. 填充8个字节的 0
2. 四个字节表示要修改键的个数 03 00 00 00 表示修改两个位置,即两组映射
3. [00 00] [00 01] 每四个字节为一组,表示两个键位,前两个字节表示 a, 后两个字节表示 b [ a 映射到 b ]
4. 末尾添加 四个字节的 0

二、键位码

具体键位映射参考 键位码

特殊键
Application E0 5D
Backspace 00 0E
Caps Lock 00 3A 
Delete E0 53
End E0 4F
Enter 00 1C
Escape 00 01
HOME E0 47
Insert E0 52
Left Alt 00 38
Left Ctrl 00 1D
Left Shift 00 2A
Left Windows E0 5B
Num Lock 00 45
Page Down E0 51
Page Up E0 49
Power E0 5E
PrtSc E0 37
Right Alt E0 38
Right Ctrl E0 1D
Right Shift 00 36
Right Windows E0 5C
Scroll Lock 00 46
Sleep E0 5F
Space 00 39
Tab 00 0F
Wake E0 63

数字小键盘

0 00 52
1 00 4F
2 00 50
3 00 51
4 00 4B
5 00 4C
6 00 4D
7 00 47
8 00 48
9 00 49
- 00 4A
* 00 37
. 00 53
/ 00 35
+ 00 4E
Enter E0 1C

功能键

F1 00 3B
F2 00 3C
F3 00 3D
F4 00 3E
F5 00 3F
F6 00 40
F7 00 41
F8 00 42
F9 00 43
F10 00 44
F11 00 57
F12 00 58
F13 00 64
F14 00 65
F15 00 66

箭头键

Down E0 50
Left E0 4B
Right E0 4D
Up E0 48

应用程序键

Calculator E0 21
E-Mail E0 6C
Media Select E0 6D
Messenger E0 11
My Computer E0 6B

QWERTY键

' " 00 28
- _ 00 0C
, < 00 33
. > 00 34
/ ? 00 35
; : 00 27
[ { 00 1A
| 00 2B
] } 00 1B
` ~ 00 29
= + 00 0D
0 ) 00 0B
1 ! 00 02
2 @ 00 03
3 # 00 04
4 $ 00 05
5 % 00 06
6 ^ 00 07
7 & 00 08
8 * 00 09
9 ( 00 0A
A 00 1E
B 00 30
C 00 2E
D 00 20
E 00 12
F 00 21
G 00 22
H 00 23
I 00 17
J 00 24
K 00 25
L 00 26
M 00 32
N 00 31
O 00 18
P 00 19
Q 00 10
R 00 13
S 00 1F
T 00 14
U 00 16
V 00 2F
W 00 11
X 00 2D
Y 00 15
Z 00 2C

F-Lock键

Close E0 40
Fwd E0 42
Help E0 3B
New E0 3E
Office Home E0 3C
Open E0 3F
Print E0 58
Redo E0 07
Reply E0 41
Save E0 57
Send E0 43
Spell E0 23
Task Pane E0 3D
Undo E0 08

多媒体播放键

Mute E0 20
Next Track E0 19
Play/Pause E0 22
Prev Track E0 10
Stop E0 24
Volume Down E0 2E
Volume Up E0 30

非英文键

¥ - 00 7D
€ E0 45

国际键盘

Next to Enter E0 2B
Next to L-Shift E0 56

Brazilian键盘

Next to R-Shift E0 73

Far East键盘

DBE_KATAKANA E0 70
DBE_SBCSCHAR E0 77
CONVERT E0 79
NONCONVERT E0 7B

Dell键盘上的特殊键

Internet E0 01

Logitech键盘上的特殊键

iTouch E0 13
Shopping E0 04
Webcam E0 12

浏览器键

Back E0 6A
Favorites E0 66
Forward E0 69
HOME E0 32
Refresh E0 67
Search E0 65
Stop E0 68

微软自然多媒体键盘

My Pictures E0 64
My Music E0 3C
Mute E0 20
Play/Pause E0 22
Stop E0 24
+ (Volume up) E0 30
- (Volume down) E0 2E
|<< (Previous) E0 10
>>| (Next) E0 19
Media E0 6D
Mail E0 6C
Web/Home E0 32
Messenger E0 05
Calculator E0 21

Log Off E0 16
Sleep E0 5F
Help(on F1 key) E0 3B
Undo(on F2 key) E0 08
Redo(on F3 key) E0 07

Fwd (on F8 key) E0 42
Send(on F9 key) E0 43
Spell(on F10 key) E0 23
Save(on F11 key) E0 57
Print(on F12 key) E0 58

参考博客:Windows10 修改键位映射

### 方法一:使用注册表编辑器 在Windows操作系统中,可以通过修改注册表实现键盘按键的重映射或替换。具体来说,在Windows注册表中存在特定路径下的条目可以被更以达到这一目的[^1]。 对于希望禁用某些键(比如Insert),可以在Windows注册表里将这些键配置成不执行任何操作,即替换成空字符。不过手动编辑注册表存在一定风险,错误的操作可能会引起系统不稳定甚至无法启动等问题,因此建议备份好重要数据并谨慎行事。 ### 方法二:利用第三方工具——SharpKeys 为了简化上述过程并且降低误操作的风险,推荐采用名为SharpKeys的应用程序来进行键位重新映射的工作。这款应用程序提供了图形界面让用户轻松地选择想要调整的按键以及目标功能,之后会自动帮助用户完成必要的注册表项更新工作。 ```powershell # 打开PowerShell作为管理员运行以下命令安装Chocolatey包管理器(如果尚未安装的话) Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) # 接着通过Chocolatey安装SharpKeys choco install sharpkeys ``` ### 方法三:借助KeyTweak软件 除了SharpKeys之外,还有另一款叫做KeyTweak的实用程序也可以用于定制化键盘输入行为。此应用同样依赖于对Windows内部机制的理解和技术手段去变默认按键的行为模式。值得注意的是,在选用此类工具前应当充分考虑其安全性和可信度问题[^2]。 ### 方法四:基于Python脚本编程方式 另外一种更为灵活但也相对复杂的选择就是运用像`keyboard`这样的Python库来自定义按键响应逻辑。这种方式给予开发者极大的自由度去做几乎任何形式上的变换,但同时也要求使用者具备一定的编程基础和经验[^3]。 ```python import keyboard def remap_keys(): # 创建一个新的映射关系字典 key_mapping = { "insert": "space", # 将Insert键映射为空格键 } for original, target in key_mapping.items(): try: keyboard.remap_hotkey(original, target) print(f"{original} has been successfully mapped to {target}.") except ValueError as e: print(e) if __name__ == "__main__": remap_keys() input("Press Enter to exit...") ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值