2010-10-13 2 views
1

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

ответ

0

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

http://gist.github.com/471698

я заменил линию 99 с этим кодом:

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

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

1

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

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

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