Как я могу обработать стороннюю комбинацию клавиш, когда мое приложение активно? - PullRequest
1 голос
/ 15 января 2010

В области уведомлений панели задач есть небольшая сторонняя программа, которая использует комбинацию клавиш Ctrl-F11 для выполнения задачи. Проблема в том, что я использую тот же ярлык, но мой скрыт другим. По сути, я не могу сделать свою вещь, когда пользователь нажимает Ctrl-F11, хотя мое окно является тем, которое в настоящее время активно. Я думал, что активное окно будет иметь приоритет в использовании комбинаций клавиш, но, видимо, это не так. Учитывая, что программа написана на .NET C #, как я могу получить приоритет ярлыка, когда мое приложение активно?

1 Ответ

0 голосов
/ 15 января 2010

Если вы не можете изменить комбинацию клавиш в приложении на панели задач, и вы должны использовать ее в своем приложении. Экстремальным подходом может быть написание Windows Hook DLL на C ++ или Delphi, фильтрация всех нажатий клавиш для Ctrl-F11 и отправка сообщения в ваше приложение.

Это не маленькая задача, есть проекты, которые подключают события Windows Keyboard к Code Project и т. Д. Вы можете адаптировать один из них. Когда вы получаете нажатие клавиши и ваше окно / форма активны, вы можете использовать SendMessage, чтобы отправить сообщение в ваше окно.

Это был бы последний отдых. Зависит от того, насколько сильно это нужно.

...