У меня есть приложение, которое работает в фоновом режиме (минимизированный/панель задач). Я должен смочь обнаружить действие мыши (щелчки, переместитесь), а также действие клавиатуры.
Что лучший способ состоит в том, чтобы сделать это, учитывая ограничение, что мое окно не "фокусируется"?
Волшебные слова - это крючки для окон. Они создаются с помощью вызова p / invoke SetWindowsHookEx
. Вы можете настроить ловушку для отслеживания, среди прочего, событий клавиатуры и мыши. Обычно такие хуки локальны для приложения, но вы также можете создавать глобальные хуки. База знаний Microsoft показывает , как это сделать.
Однако имейте в виду, что не все типы глобальных перехватчиков могут использоваться из .NET. В частности, вы можете использовать только два: низкоуровневые крючки для клавиатуры и мыши, известные как WH_KEYBOARD_LL
и WH_MOUSE_LL
. К счастью, это именно то, что вам нужно.