Получение всех нажатых клавиш везде - PullRequest
2 голосов
/ 07 декабря 2010

Так есть ли возможность пересекать все нажатия клавиш везде, где везде в любом приложении? Больше похоже на кейлоггер. Мне было интересно, если это возможно в C ++ или C #.

Привет

Ответы [ 2 ]

2 голосов
/ 07 декабря 2010

То, что вы ищете, это клавиатурный хук. Это возможно при использовании P / Invoke. Смотрите образец здесь:

http://www.codeproject.com/KB/cs/CSLLKeyboardHook.aspx

0 голосов
/ 07 декабря 2010

Если вы хотите использовать функцию winapi thaen, вы ищете SetWindowsHookEx с флагом WH_KEYBOARD. Если вы хотите получить все ке, вы можете использовать флаг низкого уровня вместо WH_KEYBOARD_LL, но это не будет переводить нажатия клавиш, поэтому с ним труднее работать.

Я никогда не использовал этот флаг, но я знаю, что некоторые флаги нуждаются в зарегистрированной функции подключения, чтобы быть в отдельном модуле (например, dll), так как они будут загружены и выполнены в контексте приложения, которое фактически получает ввод с клавиатуры. Если это так, вы должны также подумать о механизме возврата собранных данных обратно в ваше приложение, потому что глобальные переменные не будут работать.

...