Я пробую некоторые вещи с крючками, и я не понимаю, почему крючки должны использоваться с очередью сообщений
hook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, NULL, 0);
MSG msg;
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
UnhookWindowsHookEx(hook);
Почему что-то не так ужходит?
hook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, NULL, 0);
cin >> aKey;
UnhookWindowsHookEx(hook);
Использование потоков Boost и барьер тоже не работает. Почему не может в ожидании между крючком и отцеплением быть выполненным другим способом?
Редактировать:
Я сделал ошибку, когда я создал этот образец, я сделал Создать крючок wh_keyboard_ll, не wh_keyboard, (я не думаю, что это имеет большое значение)
Также цикл никогда не выполняется только ждет только на функции GetMessage.
Структура выполняется только в том случае, если я публикую сообщение о выходе Postthreadmessage (ID, WM_QUIT, 2323, NULL);
Итак, я не понимаю, что он делает рядом с ожиданием, есть ли какая-то внутренняя обработка?
связано: