Я пытаюсь создать перехват для события клавиатуры, но перехват никогда не вызывается при нажатии клавиши. Я установил крюк с помощью:
HHOOK hookRes = SetWindowsHookEx( WH_KEYBOARD, &KeyStrokeHook, NULL, GetCurrentThreadId() );
И функция обратного вызова:
LRESULT CALLBACK KeyStrokeHook( _In_ int code, _In_ WPARAM wParam, _In_ LPARAM lParam )
{
if( code < 0 )
return CallNextHookEx( NULL, code, wParam, lParam );
if( lParam & 0x80000000 == 0 ) // If key pressed, not released
{
keyStroke = wParam;
SetEvent( keyEvent );
}
return CallNextHookEx( NULL, code, wParam, lParam );
}
hookRes
имеет действительный хук, но функция хука никогда не вызывается.
Можно ли запустить ловушку, если поток, который устанавливает ловушку, в настоящее время заблокирован на мьютексе?
Задача ещё не решена.
Других решений пока нет …