Поэтому я работаю с RAWINPUT и пытаюсь понять, как это проверить:
data.keyboard.Flags
чтобы увидеть, какие флаги включены, я хочу иметь возможность проверять наличие таких клавиш, как нажатие клавиши вверх и вниз, а также нажатие левой и правой клавиш.
Вам нужно сделать что-то вроде этого:
if(data.keyboard.Flags == (RI_KEY_MAKE|RI_KEY_E0))
а также
if(data.keyboard.Flags == (RI_KEY_BREAK|RI_KEY_E0))
Я знаю, для клавиши SHIFT я должен проверить код
осталось: 0x2a
право быть: 0x36
как насчет клавиш CTRL и ALT
Вам нужно будет знать необработанные коды сканирования для ключей. Основная ссылка для них это Word документ. Сложно разобраться, таблица кодов сканирования на стр. 16 — самый полезный ресурс.
Обратите внимание, как вы должны быть осторожны с флагом E0. Он используется для клавиш, которые были добавлены в более поздние конструкции клавиатуры. Оригинальная клавиатура IBM PC всегда имела две клавиши Shift, поэтому они отправляются с выделенными кодами сканирования без E0. Но Right-Ctrl и Right-Alt были добавлены позже, их коды сканирования соответственно E0 1D и E0 38, левые 1D и 38 без флага E0.
Других решений пока нет …