Мониторинг активности клавиатуры в С#, когда мое приложение находится в фоновом режиме

Прежде всего, мне нужно четко указать, что я не заинтересован в кейлоггере.

Мне нужен способ контролировать активность клавиатуры на самом базовом уровне, пока мое приложение находится в фоновом режиме. Мне не нужно знать, какие ключи, мне не нужно сохранять какие-либо данные, мне не нужно или планировать скрыть мое приложение вообще, все, что мне нужно, это знать, когда нажаты клавиши и вызывать метод.

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

Я искал подходящие способы сделать это, и я не нашел ничего полезного. Все, что я нашел, это куча людей, которые говорят "Нет, это незаконно" на форумах и исходный код для глубоких клавиатурных шпионов.

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

Ответ 3

Корпорация Майкрософт сообщает Практическое руководство. Обработка ввода клавиатуры на уровне формы. Пока вы обрабатываете одно и то же событие (ы), это работает для любого не веб-приложения.

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

Ответ 4

Вы можете зарегистрировать горячий ключ Windows с помощью API окон RegisterHotKey, посмотрите это сообщение в блоге:

http://www.liensberger.it/web/blog/?p=207