我们可以使用 GetKeyNameText()
来检索表示键名的字符串。有什么办法可以做相反的事情,即获得给定 key 名称的扫描码或虚拟 key ?
我想将 key 名称写入配置文件,以便用户可以轻松地对其进行编辑。当我读配置文件时,我需要做与GetKeyNameText()
相反的操作。
最佳答案
这不是一个好主意,这些名称不是常量:
如果您不顾一切,我想您可以循环尝试所有可能的扫描代码来调用GetKeyNameText
。
如果还需要,MapVirtualKey
可以将扫描代码转换为虚拟 key 。虚拟键在所有键盘和所有Windows版本中都是稳定的。
我建议您对一些常用名称进行硬编码,并使用虚拟键(例如A-Z,0-9,Ctrl,Alt,Shift,Home,Insert等)并将其存储为英文文本。仅存储其他奇怪 key 的扫描代码。