Как определить, какая клавиша была нажата с помощью GetAsyncKeyState ()?

В настоящее время у меня возникают проблемы с правильным извлечением некоторых клавиш на стандартной клавиатуре (в частности, клавиш F, клавиш со стрелками и т. Д.). Я перебираю все 256 символов ASCII, используя GetAsyncKeyState() на каждое целое число, чтобы увидеть, нажата ли она, и если это так, сохраняет его как символ для использования в более позднем SendMessage() функция.

это сделано для того, чтобы я мог позволить пользователю сопоставить конкретный ключ кнопке / аналоговому элементу контроллера Xbox 360 с помощью XInput, а затем отправить ключ в самое верхнее окно при срабатывании этой кнопки / аналогового элемента.

Мне известно, что проблема заключается в шестнадцатеричном / десятичном преобразовании из кода виртуальной клавиши, идентифицируемого GetAsyncKeyState() например, когда я нажимаю F4 (hex 73, Dec 115) символ назначается на «s», что в ASCII является тем же значением hex / dec.

Unicode — путь вперед для этого? Если да, то как бы это реализовать, чтобы получить правильные значения для SendMessage() функционировать?

Ниже находится цикл для GetAsyncKeyState()

while (mKey == NULL)
{
system("cls");
cout << "Press Key" << endl;
for (int i = 0; i < 256; i++)
{
if (GetAsyncKeyState((i) & SHRT_MAX))
{
mKey = i;
}
}
}

Я в курсе system("cls") Это плохая практика, но это консольное приложение является лишь временным решением.

Буду очень признателен за любую помощь 🙂

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]