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

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

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

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

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

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

4 ответов


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

обработка глобальных Крючков мыши и клавиатуры в C#


вам нужно будет использовать оконные крючки:

низкоуровневый крюк клавиатуры в C#

но будьте осторожны, безопасность Windows может защитить нас от того, что вы хотите!


Microsoft говорит вам Как: обрабатывать ввод с клавиатуры на уровне формы. Пока вы обрабатываете одно и то же событие(события), это работает для любого не веб-приложения.

вы также должны взглянуть на другие вопросы здесь на SO, такие как обработка ввода с клавиатуры Клин


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

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