Ответ 1
Существует статья, в которой есть рабочий пример для того, что вам нужно (он также отслеживает события клавиатуры и мыши в фоновом режиме):
Прежде всего, мне нужно четко указать, что я не заинтересован в кейлоггере.
Мне нужен способ контролировать активность клавиатуры на самом базовом уровне, пока мое приложение находится в фоновом режиме. Мне не нужно знать, какие ключи, мне не нужно сохранять какие-либо данные, мне не нужно или планировать скрыть мое приложение вообще, все, что мне нужно, это знать, когда нажаты клавиши и вызывать метод.
Я ищу самый простой способ сделать это возможным, я знаю разумное количество С#, но ничего сложного, поскольку большинство моих знаний самонаучно.
Я искал подходящие способы сделать это, и я не нашел ничего полезного. Все, что я нашел, это куча людей, которые говорят "Нет, это незаконно" на форумах и исходный код для глубоких клавиатурных шпионов.
Если бы кто-нибудь из вас мог посоветовать мне на пути к достижению этого, я был бы очень благодарен.
Существует статья, в которой есть рабочий пример для того, что вам нужно (он также отслеживает события клавиатуры и мыши в фоновом режиме):
Вам нужно будет использовать Window Hooks:
Низкоуровневая клавиатура на С#
Но будьте осторожны, безопасность Windows может защитить нас от того, что вы хотите!
Корпорация Майкрософт сообщает Практическое руководство. Обработка ввода клавиатуры на уровне формы. Пока вы обрабатываете одно и то же событие (ы), это работает для любого не веб-приложения.
Вы также должны посмотреть на другие вопросы здесь, например, Обработка ввода с клина клавиатуры
Вы можете зарегистрировать горячий ключ Windows с помощью API окон RegisterHotKey, посмотрите это сообщение в блоге: