В настоящее время я исследую хороший надежный способ регистрации действий пользователя на компьютере. Я создал простое приложение, которое глобально перехватывает WH_CBT
события, и, похоже, пока оно работает нормально. Я читал о ситуациях, когда приложение могло бы иметь свой собственный WH_CBT
обработчик событий и не могло бы вызывать CallNextHookEx()
функцию после ее обработки. Я предполагаю, что этот сценарий помешает мне самостоятельно обрабатывать какие-либо события в этом приложении с помощью общесистемной ловушки.
Есть ли другой (может быть, лучший) способ перехвата событий нажатия клавиш в приложениях? Может быть, что-то связано с ручным внедрением DLL в такие процессы:
- Процесс выбора.
- Внедрить DLL с помощью
CreateRemoteThreadEx()
. - DLL перехватывает (обходит) некоторые функции winapi и собирает от них информацию о нажатиях клавиш или других событиях.
Будет ли в этом случае достаточно перехвата GetMessage()
или TranslateMessage()
функций? Прав ли я, что любой процесс, использующий цикл сообщений, должен использовать эти функции для обработки событий для созданных окон?