1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Хуки Windows

Тема в разделе "С и С++", создана пользователем Guest, 27 дек 2003.

Статус темы:
Закрыта.
  1. Guest

    Guest Гость

    Репутация:
    0
    Хуки Windows
    Итак, у меня проблема с WH_CALLWNDPROC и WH_MSGFILTER хуками.
    Вот функция моего хука:
    Код:
    LRESULT CALLBACK HookProc(DWORD nCode,WPARAM wParam,LPARAM lParam) 
    { 
      CallNextHookEx(hHook,nCode,wParam,lParam); 
    return 0; 
    } 
    
    
    Вот функция установливающая Hook: 
    void Install() 
    { 
     hInstance=GetModuleHandle(NULL);// Когда я ставлю вместо hInstance ноль то проблема тоже остаётся. 
     hHook=SetWindowsHookEx(WH_MSGFILTER,(HOOKPROC)&HookProc,hInstance,0); 
    } 
    
    И функция убирающая Hook: 
    
    void Unistall() 
    { 
    UnhookWindowsHookEx(hHook); 
    } 
    
    Ну и DLL Main: 
    
    BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) 
    { 
     return TRUE; 
    }
    Так вот: Этот хук как вы заметили отлавливает сообщения выбора пункта меню (ну и ещё несколько событий) во всей системе.
    Но когда я ставлю этот хук и нажимаю скажем в калькуляторе на меню, то у меня выскакивает ошибка:
    "Программа выполнила недопустимую операцию и будет закрыта" и закрывется калькулятор.
    Когда я ставлю хук WH_KEYBOARD, то всё нормально работает!
    Если это имеет значения я пишу под Win95 с установленным IE 5.0
    В чём дело?
     
  2. Гость

    Репутация:
    0
    Guest
    Вои цитата из MSDN:
    Собственно они настоятельно рекомендуют возвращать то, что вернул CallNextHookEx. А ты, судя по коду, возвращаешь 0.

    Гуд бай ламерzzzz ^)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей