使用Raw Input作为键盘时,有没有办法访问键重映射?

时间:2011-06-29 17:57:55

标签: windows winapi keyboard raw-input

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

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

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

1 个答案:

答案 0 :(得分:1)

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