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

我想将 key 名称写入配置文件,以便用户可以轻松地对其进行编辑。当我读配置文件时,我需要做与GetKeyNameText()相反的操作。

最佳答案

这不是一个好主意,这些名称不是常量:



如果您不顾一切,我想您可以循环尝试所有可能的扫描代码来调用GetKeyNameText

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

我建议您对一些常用名称进行硬编码,并使用虚拟键(例如A-Z,0-9,Ctrl,Alt,Shift,Home,Insert等)并将其存储为英文文本。仅存储其他奇怪 key 的扫描代码。

10-06 13:41