我们可以使用GetKeyNameText()
来检索代表键名的字符串。有什么方法可以做相反的操作,即获取给定密钥名称的扫描码或虚拟密钥吗?
我想将键名写入配置文件,以便用户可以轻松地对其进行编辑。当我读入配置文件时,我需要做相反的GetKeyNameText()
。
答案 0 :(得分:2)
这不是一个好主意,这些名称不是常量:
根据当前安装的键盘的布局来翻译键名,因此该功能对于不同的输入语言环境可能会给出不同的结果。
如果您不顾一切,我想您可以在循环中调用GetKeyNameText
尝试所有可能的扫描代码。
MapVirtualKey
可以将扫描代码转换为虚拟密钥,如果您也需要这样做的话。虚拟键在所有键盘和所有Windows版本中都是稳定的。
我建议您对一些常用名称进行硬编码,并使用虚拟键(例如A-Z,0-9,Ctrl,Alt,Shift,Home,Insert等)并将其存储为英文文本。仅存储其他奇怪密钥的扫描代码。