Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с ХУКами

7.5K
08 мая 2006 года
sadman
45 / / 21.01.2006
всем доброго времени суток!
нужно получать уведомление о том что окно (любое) получило фокус. Устанавливаю ХУК типа WH_CBT :
 
Код:
SetWindowsHookEx(WH_CBT, (HOOKPROC) CBTProc, NULL, 0);

Далее, в процедуре хука делаю следующее:
 
Код:
LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if(nCode<0) return CallNextHookEx(0, nCode, wParam, lParam);
   
    if(nCode == HCBT_ACTIVATE){
    //ну, для начала
    MessageBox(NULL, "activate", "window", 0);
    }
    return CallNextHookEx(0, nCode, wParam, lParam);
}


При запуске программы и последующего хаотичного тыканья в разные окна, моя прога не выдаёт MessageBox. Более того! Устанавливая МессаджБокс чуть выше, вне IF'а, также ничего не происходит. То-есть данная процедура вообще не вызывается! Объясните, плз, что не так!
Заранее спасибо.
243
08 мая 2006 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by sadman
При запуске программы и последующего хаотичного тыканья в разные окна, моя прога не выдаёт MessageBox. Более того! Устанавливая МессаджБокс чуть выше, вне IF'а, также ничего не происходит. То-есть данная процедура вообще не вызывается! Объясните, плз, что не так!
Заранее спасибо.


Видимо в очередной раз страдает матчасть. Хук у тебя в dll висит? Что-то мне кажется, что нет. А должен вызываться в dll, что бы глобально работать на всю систему. Вывод: читаем литературу относящуюся к данному вопросу.

7.5K
09 мая 2006 года
sadman
45 / / 21.01.2006
спасибо. уже нашел :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог