Действительно, работает.
Буду разбираться, почему.
И что понимается под проверкой очереди сообщений.
---------- Post added at 02:12 ---------- Previous post was at 02:09 ----------
Если под очередью сообщений подразумевается PeekMessage() и т.д., то у меня тоже это все проверяется, но хук не вызывается)
---------- Post added at 03:45 ---------- Previous post was at 02:12 ----------
Перенес затем один в один обработчик в свой эмулятор - не работает)
Не понимаю, как из-за сообщений что-то там вообще может зависеть. Откуда такая информация? Чисто экспериментально?
У тебя они обрабатываются так:
а у меня так:Код:if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); if( msg.message == WM_QUIT ) break; }
Разницы никакой.Код:if (PeekMessage(&msg, NULL, 0, 0, 0)) { if (GetMessage(&msg, NULL, 0, 0)) { // Получить сообщение TranslateMessage(&msg); // Если сообщение не QUIT, DispatchMessage(&msg); // оттранслировать его окну } else SysExit(); // Иначе выйти закрыв все устройства }
Еще точнее уточнил.
Если активно окно эмулятора, хук не работает. Если не активно работает. Опять активно - не работает.
Причем обработчик окна меняю даже на полностью дефолтный типа:
Это ничего не меняет. Т.е. зависит не от функции обработки окна а... непонятно опять от чего)return (DefWindowProc(hWnd,Message,wParam,lParam));




Ответить с цитированием