Вход

Просмотр полной версии : А кто нить знает, как клавиатура отправляет скан-коды комбинаций клавиш?


Dikoy
20.08.2014, 20:26
Как последовательность нажатий, или формирует уникальный код сама анализируя клавиши?
Логично, что вариант таки первый. То есть, чтоб сделать Win+D, нужно послать:

E0,1F / 23 / F0,23 / E0,F0,1F.

Тогда не понятно, как унифицировать длину посылки? Можно ли добавлять нули перед скан кодами для выравнивания длины? Нулевого кода в скан кодах нет.

00,E0,1F / 00,00,23 / 00,F0,23 / E0,F0,1F.

Добавлено через 1 минуту
Учитывая, что скан-код передаётся единоразово, при событии нажатия или отпускания клавиши, чисто логически можно заключить, что продолжение удержания клавиши никак на посылки не влияет и следующий код уходит как обычно. А уже на стророне ПК идёт определение...

kravets
20.08.2014, 20:33
Учитывая, что скан-код передаётся единоразово, при событии нажатия или отпускания клавиши, чисто логически можно заключить, что продолжение удержания клавиши никак на посылки не влияет и следующий код уходит как обычно. А уже на стророне ПК идёт определение...

В Винде есть занятная особенность - при длительном нажатии (склероз?) шифта что-то происходит... А, вот и оно:
http://microsin.net/adminstuff/windows/shift-trouble.html

Dikoy
20.08.2014, 20:42
Залипание, я знаю. Шифт меня мало волнует.
Меня волнует Win. В меньшей мере - Ctrl & Alt на любой стороне.

Добавлено через 4 минуты
Под "продолжение удержания клавиши никак на посылки не влияет" я имел ввиду вот что.
Одновременно нажать клавиши невозможно, всегда одна вперёд. Да даже если одновременно, решает (наверняка) приоритет. То есть код первой нажатой клавиши уйдёт в ПК, ибо клава не знает, что кто-то будет жать вторую. А значит формирование спецкодов комбинаций бессмысленно. Да и в играх, где Ctrl & Alt активно участвуют, была бы чехарда в этом случае.
Плюс, в описаниях скан-кодов я НИГДЕ не видел кодов комбинаций.
Значит, коды просто уходят подряд.
Но найти бы документальное подтверждение...