对键盘使用原始输入时,有没有办法访问键重新映射?

Posted

技术标签:

【中文标题】对键盘使用原始输入时,有没有办法访问键重新映射?【英文标题】:When using Raw Input for the keyboard, is there a way to access key remappings? 【发布时间】:2011-06-29 17:57:55 【问题描述】:

“重新映射”是指使用 Windows 功能自动将扫描码转换为其他扫描码。这是通过 KeyTweak 等工具配置的,或者直接通过编辑某个注册表项来配置。

如果您使用 WM_KEYDOWN 消息和好友,您将获得正确重新映射的键。 DirectInput 也是如此。但原始输入并非如此。有没有办法获得重新映射的密钥?我不需要原始的扫描码或 VK 码,只需要重新映射的。

MSDN 说 DirectInput 在用于键盘输入时是原始输入的包装器。但不知何故,DirectInput 会为您提供重新映射的键,而 Raw Input 则不会。

【问题讨论】:

【参考方案1】:

我的猜测是,DI 在初始化时会从注册表中读取 Scancode Map 值,并在内部翻译键码。 Here 是一些旧的但仍然正确的关于“扫描码映射”注册表值的文档。

【讨论】:

谢谢,这似乎很有可能。不过,我的需求太麻烦了。

以上是关于对键盘使用原始输入时,有没有办法访问键重新映射?的主要内容,如果未能解决你的问题,请参考以下文章

我的电脑每次开机后键盘上的Nmu lock键总要重新点击打开,啥原因啊

在 Ubuntu 13.10 中重新映射 Ctrl、Alt 和 Super 键

有没有办法检查过剩键缓冲区?

当用户单击javascript mottie虚拟键盘键之间的小空间时,有没有办法防止焦点从元素模糊?

iOS UITableView reloadData 导致键盘收起不能连续输入问题解决办法

我可以知道在按 Enter 之前按下了哪个键盘键吗