【问题标题】:Reverse op for GetKeyNameTextGetKeyNameText 的反向操作
【发布时间】:2019-05-02 22:58:37
【问题描述】:

我们可以使用GetKeyNameText() 来检索表示键名的字符串。有什么方法可以反过来,即为给定的键名获取扫描码或虚拟键?

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

【问题讨论】:

    标签: c windows winapi scancodes


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 谢谢,是的,这似乎是最好的方法。
    猜你喜欢
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多