Я пытаюсь подключить сообщения клавиатуры безуспешно.
Я создаю тестовое консольное приложение win32:
int _tmain(int argc, _TCHAR* argv[])
{
HOOKPROC hHookProc;
HINSTANCE hinstDLL;
HHOOK hHook;
hinstDLL = LoadLibrary(TEXT("pathtodll\\KeyHook.dll"));
hHookProc= (HOOKPROC)GetProcAddress(hinstDLL, "HookProc");
hHook = SetWindowsHookEx(
WH_KEYBOARD,
hHookProc,
hinstDLL,
0);
while (1) {}
return 0;
}
Я также создал тестовую win32 dll сФункция HookProc:
extern __declspec(dllexport) LRESULT CALLBACK HookProc(
int nCode,
WPARAM wParam,
LPARAM lParam
)
{
// process event
//...
MessageBox( NULL,
TEXT("OK"),
TEXT("OK"),
MB_OK);
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
Все компилируется нормально, но когда я пытаюсь отладить, кажется, что HookProc никогда не вызывается.На самом деле в Win 7 приложение зависает при нажатии любой клавиши, в то время как в Win Xp HookProc не вызывается.Я получаю не NULL hinstDLL, hHookProc, hHook.
Что я пропускаю?