Получить уведомление, когда окно установлено как активное

Я пытаюсь написать основной кейлоггер на C ++, и до сих пор мне удалось установить низкий рычаг клавиатуры с помощью Win API. Он уведомляет меня каждый раз, когда нажимается клавиша.
Я хотел бы сделать что-то подобное, чтобы уведомлять меня каждый раз, когда фокус меняется на другое окно, поэтому я знаю, в какое окно печатает пользователь.
Я попытался установить хук HW_CBT, но он не дает мне никаких уведомлений.

Каков наилучший способ сделать это?

РЕДАКТИРОВАТЬ:

Я изменил этот код:

LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam) {
cout<<"event";
return CallNextHookEx(0, nCode, wParam, lParam);
}

а также SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, NULL, NULL);

У меня также есть это в моей программе:

while(true)
GetMessage(&msg,0,WM_KEYFIRST, WM_KEYLAST);

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

РЕДАКТИРОВАТЬ 2!
Я сделал это с помощью GetWindowText(), GetForegroundWindow() и таймер. Не совсем то, что я искал, но это подойдет.
Я просто приму первый ответ …

1

Решение

Может быть, это может быть полезно для вас? SetWindowsHookEx

Устанавливает подключаемую процедуру, которая отслеживает сообщения, прежде чем система отправит их в оконную процедуру назначения

0

Другие решения

Попробуйте использовать хук WH_CALLWNDPROC или WH_CALLWNDPROCRET, чтобы получать сообщения WM_ACTIVATE (уведомления как для активации, так и для деактивации окна), отправленные на ваш хук до или после того, как они были отправлены в оконную процедуру фактического окна.

0

По вопросам рекламы [email protected]