RAWKEYBOARD Флаги, проверяющие, какие флаги включены, а также SHIFT, CTRL и ALT

Поэтому я работаю с 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

0

Решение

Вам нужно будет знать необработанные коды сканирования для ключей. Основная ссылка для них это Word документ. Сложно разобраться, таблица кодов сканирования на стр. 16 — самый полезный ресурс.

Обратите внимание, как вы должны быть осторожны с флагом E0. Он используется для клавиш, которые были добавлены в более поздние конструкции клавиатуры. Оригинальная клавиатура IBM PC всегда имела две клавиши Shift, поэтому они отправляются с выделенными кодами сканирования без E0. Но Right-Ctrl и Right-Alt были добавлены позже, их коды сканирования соответственно E0 1D и E0 38, левые 1D и 38 без флага E0.

0

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

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

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