Игнорировать ввод с клавиатуры - PullRequest
1 голос
/ 13 октября 2010

У меня есть приложение, которое отображает клавиатуру и проверяет, были ли нажаты клавиши или нет. Проблема, с которой я столкнулся, заключается в том, что при нажатии определенных клавиш, таких как кнопки со стрелками / вкладка, изображение клавиатуры теряет фокус и начинает получать доступ к пунктам меню и т. Я попытался зарегистрироваться для предварительного просмотра события мыши в MainWindow и установить e.handled = true. Но это не работает все время. Также было бы неплохо, если бы был также способ отключить кнопку Windows.

Ответы [ 2 ]

1 голос
/ 13 октября 2010

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

Я видел подобные вещи еще во время написания подпрограмм BIOS машинного кода для CP / M. Windows гораздо сложнее, чем это. Я перестал писать код для управления оборудованием, когда начал использовать Windows 3.1.

0 голосов
/ 17 октября 2010

Я использовал этот класс:

http://gist.github.com/471698

Я заменил строку 99 следующим кодом:

return EnableKeyboard ? InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam) : (IntPtr) 1;

Где EnableKeyboard установлен пользователем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...