Клавиатура C # Проблема с приоритетом обнаружения клавиш - PullRequest
0 голосов
/ 02 мая 2011

У меня есть приложение, которое обнаруживает нажатие клавиш на C # winform. Проблема на стороне клиента, есть некоторые другие приложения, которые также обнаруживают нажатые клавиши и подавляют их, и из-за этого форма моего приложения не получает уведомление о нажатой клавише. Я использовал традиционное событие form.KeyDown для определения ключа. Как я могу иметь более высокий приоритет, чем другое приложение?

Ответы [ 2 ]

1 голос
/ 03 мая 2011

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

Это игра стен и лестниц , в которой никто не может победить.Так что либо работайте с приложением, теряющим нажатия клавиш, либо удалите нарушающее работу приложение с клиентского компьютера.

1 голос
/ 02 мая 2011

Если вы беспокоитесь о том, что другие приложения, в основном, крадут ваше нажатие клавиши, вам нужно изучить Global Hooks , который почти наверняка так же, как другие приложения воруют ваше.Вы можете свернуть свой собственный код или использовать библиотеку-оболочку , которую кто-то уже написал.

...