2

我们可以使用它GetKeyNameText()来检索表示键名的字符串。有没有办法做相反的事情,即为给定的键名获取扫描码或虚拟键?

我想将键名写入配置文件,以便用户可以轻松编辑它们。当我读入配置文件时,我需要做相反的GetKeyNameText().

4

1 回答 1

2

不是一个好主意,这些名称不是恒定的:

键名是根据当前安装的键盘布局翻译的,因此该函数可能会针对不同的输入语言环境给出不同的结果。

如果你很绝望,我想你可以GetKeyNameText循环调用所有可能的扫描码。

MapVirtualKey如果您还需要这样做,可以将扫描码转换为虚拟键。虚拟键在所有键盘和所有版本的 Windows 中都是稳定的。

我建议你硬编码一些常见的名称,并具有虚拟键,如 AZ、0-9、Ctrl、Alt、Shift、Home、Insert 等,并将它们存储为英文文本。只存储其他奇怪键的扫描码。

于 2019-05-03T00:17:41.730 回答