Как ловить события клавиатуры и мыши? - PullRequest
2 голосов
/ 19 апреля 2010

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

Например, вы смотрите телевизор с помощью стороннего приложения. Если вы нажмете Ctrl + Shift и используете колесо прокрутки, мое приложение изменит громкость.

Я использую Windows 7 x64 и Visual Studio 2008.

Ответы [ 3 ]

4 голосов
/ 19 апреля 2010

Вы можете вызвать SetWindowsHookEx () , чтобы получать уведомления при возникновении различных событий. Возможно, вы захотите использовать зацепку для клавиатуры и зацепку для мыши, чтобы отслеживать события мыши.

3 голосов
/ 19 апреля 2010

Если ваше приложение является настоящей службой Win32, то в Vista и более поздних версиях приложение не будет получать события клавиатуры или мыши - чтобы закрыть дыру в безопасности (поиск «разбойная атака»), Microsoft изолировала все службы, чтобы предотвратить их. от взаимодействия с пользователем.

Вам необходимо запустить приложение в сеансе с интерактивно зарегистрированным пользователем.

2 голосов
/ 14 ноября 2012

Вы можете использовать метод RAW INPUT, он более надежен, чем GetAsyncKeyState и т. Д.

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

Доступны версии как исходного кода C #, так и MASM.

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