Как проверить, нажаты ли две клавиши одновременно? - PullRequest
0 голосов
/ 08 февраля 2019

Я сейчас пишу модуль драйвера клавиатуры.Я хочу одновременно нажать клавишу Shift и другую клавишу, чтобы изменить строчные буквы на прописные.Нужно ли анализировать скан-код?Некоторые подсказки, пожалуйста, и я очень признателен за пример кода.

1 Ответ

0 голосов
/ 08 марта 2019

На самом деле есть две разные, связанные с каждой клавишей клавиатуры - событие, когда она (клавиша) нажата, и другое событие, когда она (клавиша) отпущена.Вам просто нужно использовать эти события.

Для вашей проблемы вам нужно будет сделать что-то вроде (взяв 0 для печати и 1 для выпуска):

/*eventA for shift key*/
if (eventA == 0)
{
    Flag = PRESSED;
}
else
{
    Flag = RELEASED;
}

...

/*eventX for any character key*/
if (eventX == 0 )
{
    if (Flag == PRESSED)
        toupper(...)


    //print the character

}
...