小编Biz*_*rus的帖子

GetKeyNameText 小键盘缺少文本

我正在尝试GetKeyNameText使用原始输入给出的制作/扫描代码和扩展键标志获取按键的名称:

std::wstring GetKeyName(const RAWKEYBOARD& info)
{
    WCHAR n[128];
    const int l = GetKeyNameTextW((info.MakeCode << 16) | ((info.Flags & RI_KEY_E0) != 0 ? 1 << 24 : 0), n, ARRAYSIZE(n));
    if(l == 0) { return L""; }
    return std::wstring(n);
}
Run Code Online (Sandbox Code Playgroud)

这对大多数键都很有效,但是,Num /(扫描代码 53)和Num *(扫描代码 55)给出了错误的结果:它们都给出了字符串“(ZEHNERTASTATUR)”(德语键盘布局,英语中的“Num”也是如此) – 所以的/*丢失的名字。

我已经用两个不同的键盘对此进行了测试,结果相同(使用 Windows 10 顺便说一句),我错过了什么吗?为什么这两个键没有正确的名称?

c++ windows winapi raw-input

6
推荐指数
1
解决办法
160
查看次数

标签 统计

c++ ×1

raw-input ×1

winapi ×1

windows ×1