Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: QuAzI от Июнь 20, 2011, 15:06



Название: SetWindowsHookEx для отлова запуска графики
Отправлено: QuAzI от Июнь 20, 2011, 15:06
Не могу своеваться с хуками, нужно отстрелить запуск приложений.
Пляшу от этого
Код:
#include <QtGui/QApplication>
#include <QDebug>
 
#include <windows.h>
 
LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    // process event...
    qDebug() << nCode << wParam << lParam;
 
    return CallNextHookEx(NULL, nCode, wParam, lParam);
}
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
 
    if (SetWindowsHookEx(WH_KEYBOARD_LL, HookProc, qWinAppInst(), NULL) == 0)
        qDebug() << "Hook failed for application instance" << qWinAppInst() << "with error:" << GetLastError();
 
    return a.exec();
}
Пока ловится клавиатура, всё красиво. Когда пытаюсь споймать WH_CBT, WH_SHELL или ещё что-то посерьёзнее, или просто не ловится ничего, или ошибка доступа к памяти.