2009-03-11 4 views
0

Во время разработки я заметил, что некоторые КПК с Windows CE и, возможно, Windows Mobile также отправляют клавишу Enter дважды в нажатом ключе, поэтому я выполняю дважды код который находится под нажатием клавиши управления для кнопки возврата.Событие нажатия клавиши запускается дважды при нажатии одной кнопки ENTER в Windows CE

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

ответ

0

Без изменения логики? Вы действительно не можете (если нет аппаратного или прошивки). Я предполагаю, что самый простой механизм (требующий логического изменения) заключается в том, чтобы обработать две клавиши ввода или нажатия клавиш за короткий период (скажем < 100 мс), а затем игнорировать вторую.

+0

В связи с возможностью того, что выполняемая им операция может занять> 100 мс, а клавиши обрабатываются последовательно. Я предлагаю сделать наоборот. Удерживайте обработку ввода и подождите некоторое время, чтобы узнать, прибывает ли еще один из них, прежде чем обрабатывать один из них. – Quibblesome

0

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

0

Это случилось со мной, и оказалось, что это было потому, что опция «enable character repeat» была включена на панели управления -> клавиатуре. Задержка повторения по умолчанию была слишком быстрой для используемой клавиатуры, поэтому я просто замедлил ее, и проблема исчезла.

Смежные вопросы