惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
S
Schneier on Security
S
Secure Thoughts
P
Privacy International News Feed
AI
AI
V
Vulnerabilities – Threatpost
T
The Exploit Database - CXSecurity.com
Latest news
Latest news
T
Tor Project blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
TaoSecurity Blog
TaoSecurity Blog
Project Zero
Project Zero
N
News and Events Feed by Topic
Google DeepMind News
Google DeepMind News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Spread Privacy
Spread Privacy
T
Tenable Blog
C
CERT Recently Published Vulnerability Notes
K
Kaspersky official blog
NISL@THU
NISL@THU
Cloudbric
Cloudbric
L
Lohrmann on Cybersecurity
T
Troy Hunt's Blog
Google Online Security Blog
Google Online Security Blog
Hacker News: Ask HN
Hacker News: Ask HN
Schneier on Security
Schneier on Security
S
Security @ Cisco Blogs
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
Cyberwarzone
Cyberwarzone
小众软件
小众软件
S
Security Affairs
雷峰网
雷峰网
Scott Helme
Scott Helme
月光博客
月光博客
PCI Perspectives
PCI Perspectives
O
OpenAI News
宝玉的分享
宝玉的分享
The Register - Security
The Register - Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Engineering at Meta
Engineering at Meta
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 司徒正美
N
News and Events Feed by Topic
S
SegmentFault 最新的问题
U
Unit 42
P
Palo Alto Networks Blog
腾讯CDC
A
Arctic Wolf

記緒漂流

Cloudflare One 集成 OAuth 访问控制 | 記緒漂流 Cloudflare One 集成 OAuth 访问控制 打造专属记账助手 | 記緒漂流 打造专属记账助手 Numb | 記緒漂流 Numb 三月自白 | 記緒漂流 三月自白 相反的你和我・同频的心与心 | 記緒漂流 相反的你和我・同频的心与心 使用 Tailscale 内网穿透 | 記緒漂流 使用 Tailscale 内网穿透 在《HackHub》中成为世界首富 | 記緒漂流 在《HackHub》中成为世界首富 社交距离 | 記緒漂流 社交距离 UNIQLO × Akamai 联名 T 恤 | 記緒漂流 UNIQLO × Akamai 联名 T 恤 Windows 按键重映射 少女・魔法・救赎 | 記緒漂流 少女・魔法・救赎 Live 初体验 | 記緒漂流 Live 初体验 《剧场版总集篇 GIRLS BAND CRY【后篇】嘿,未来。》观后有感 | 記緒漂流 《剧场版总集篇 GIRLS BAND CRY【后篇】嘿,未来。》观后有感 从 UnoCSS 迁至 Tailwind CSS | 記緒漂流 从 UnoCSS 迁至 Tailwind CSS AI² 与站点 LOGO | 記緒漂流 AI² 与站点 LOGO YAML 多行语法 | 記緒漂流 YAML 多行语法 所以我放弃了 npm | 記緒漂流 所以我放弃了 npm 上下求索,以飨四方 | 記緒漂流 上下求索,以飨四方 理想、偏见与「博友圈」 | 記緒漂流 理想、偏见与「博友圈」 甲流就医纪实 | 記緒漂流 甲流就医纪实
Windows 按键重映射 | 記緒漂流
TuyuriTio · 2026-01-05 · via 記緒漂流

过去的一篇文记中提到,我对自己的键盘布局做了一系列的按键替换。回想起为此还稍稍做过一些系统性的记录,故于此整理保存。


Windows 下在软件层面映射按键的方法有多种,如 PowerToysAutoHotkey 以及修改注册表。

上述几种方法中,注册表级别的操作应当级别最低且系统占用最小,甚至能作用于虚拟机中,因此采用该种方法。

映射原理

官方文档:Scan code mapper for keyboards

Scancode Map 注册表项的类型为 REG_BINARY(二进制值),位于 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout 单元下。

对于现代 USB 键盘,前置驱动程序 kbdhid.sysUSB HID Usage ID 转义为 PS/2 Scan Code (Set 1)1,Windows 2000 时代的驱动程序 kbdclass.sys 将拦截键码,并与该注册表中的数据对比2,篡改键值后发送至输入队列

该注册表值共由四部分组成:

头部

共 8 字节,存储版本信息等数据,对于当前版本固定为 00 00 00 00 00 00 00 00 即可。

计数

共 4 字节,表示映射项的总数,但应包含最后的空终止符,因此实际数量为映射数 + 1

按照 Little Endian(小端模式)3 填入。

其实全部为 0 也没有关系。

映射

核心数据区域,每 4 字节为一组映射,每个按键为 2 字节,格式为 [新键码] [原键码]

按照 Little Endian(小端模式)3 填入。

例如,Caps Lock 键值为 0x003ALeft CTRL 键值为 0x001D,用 Left CTRL 功能覆盖键盘上的 Caps Lock 按键,则需填入 1D 00 3A 00

这还是文档的第一个官方示例,看来觊觎这个黄金键位的也是大有人在🥲。

尾部

共 4 字节,包含一个 Null Terminator(空终止符),固定为 00 00 00 00

其实不填也没有关系。

Tip

  • 保存注册表后,必须重新启动系统才能使映射生效。
  • 删除注册表并重启,即可恢复为默认按键状态。

个人使用案例

  • Caps LockBackspace
  • BackspaceDelete
  • DeleteCaps Lock
  • Right CTRLMy Computer
00 00 00 00 00 00 00 00
05 00 00 00 0E 00 3A 00
3A 00 53 E0 53 E0 0E 00
6B E0 1D E0 00 00 00 00

Footnotes

  1. USB HID to PS/2 Scan Code Translation Table

  2. Keyboard Scan Code Specification

  3. 端序#小端序 ↩ ↩2