![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Clio |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 6.11.2007 Репутация: нет Всего: нет |
Добрый день!
Мне надо в хуке отследить, когда окно стало активным и когда потеряло активность. Поставил хук ( WH_GETMESSAGE) В обработчике пытаюсь отловить сообщение WM_ACTIVATE Но что это сообщение не отлавливаеться Вот пример кода
Подскажите,пожалуйста, что не так я делаю? Или есть другие способы узнать какое окно стало активным и потеряло активность? |
|||
|
||||
alexpotemkin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Следить откуда и за чьим окном?
Своё же? или нет. Возможно более простой вариант проверять по таймеру GetFocus. Но маловато подробностей за каким окном следить и откуда. |
|||
|
||||
Clio |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 6.11.2007 Репутация: нет Всего: нет |
Хук устанавливается глобально.
В общем нужно отследить сколько времени запущенная любая программа была активна. Хотел обрабатывать сообщение WM_ACTIVATE, т.к. по описанию оно приходит к окну которое теряет активность , а потом к окну ставшему активным. Но почему то сообщение это не приходит. |
|||
|
||||
alexpotemkin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 21.11.2006 Репутация: нет Всего: нет |
Попробуй покапать еще в направлении Microsoft Active Accessibility и отслеживания событий, тоже хорошая тема и достаточно озвучена в текстах.
Я не совсем красиво ловил окно, но там особой точности и не требовалось, по таймеру отслеживал GetFocus и наличие процесса связанного с окном. Задача ставилась только поймать момент появления окна. это по хукам http://www.experts-exchange.com/Programmin...Q_24302496.html http://msdn.microsoft.com/en-us/library/ms997537.aspx http://www.swissdelphicenter.ch/torry/showcode.php?id=1212 Это сообщение отредактировал(а) alexpotemkin - 12.10.2009, 10:46 |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
почему нет проверки на корректность возвращаемого значение SetWindowsHookEx? чему равен SysHookl?
функция-обработчик описана в DLL или в приложении? Добавлено через 12 минут и 32 секунды 1. если функция хука находится не в dll, то она никогда не сработает при такой записи. 2. почему бы автору не воспользоваться хуком WH_CBT с отслеживанием HCBT_ACTIVATE в lParam?
-------------------- There are always someone smarter than you... |
|||
|
||||
pro100Bond |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 17.10.2009 Репутация: нет Всего: нет |
Есть книжица за авторством М. Фленова, завеца книжица "Программирование в Delphi глазами хакер". В это книге есть пример кода который тебя интересует. Нельзя сказать что код идеален, но работу свою делает. Во вложении код библиотеки с системным хуком CBT. P.S. MSDN конечно рулит, но советую заглянуть и сюда --> RSDN.RU, почитать старые статьи, задать интересующий вопрос. Присоединённый файл ( Кол-во скачиваний: 22 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |