GetKeyNameText numpad отсутствует текст - PullRequest
1 голос
/ 08 ноября 2019

Итак, я пытаюсь получить имя нажатой клавиши с помощью GetKeyNameText, используя код make / scan и флаг расширенной клавиши, заданный необработанным вводом:

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);
}

Это работает хорошооднако для большинства клавиш Num / (код сканирования 53) и Num * (код сканирования 55) дают неверные результаты: они оба дают строку "(ZEHNERTASTATUR)" (раскладка немецкой клавиатуры, поэтому на английском языке будет "Num")) - поэтому в названии отсутствует / или *.

Я проверил это на двух разных клавиатурах, с одинаковыми результатами (используя Windows 10, кстати), я что-то упустил? Почему эти два ключа не имеют правильных имен?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...