Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Hook

Ответить
Настройки темы
C/C++ - [решено] Hook

Аватара для ganselo

Старожил


Сообщения: 232
Благодарности: 90

Профиль | Сайт | Отправить PM | Цитировать


Делаю dll с hook'ом. Hook отслеживает появление нового окна (WH_CBT). Собственно хук работает (появление окна отслеживается), а как сообщить вызывающей программе о появлении нового окна?

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Отправлено: 19:32, 03-06-2009

 

Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


ganselo, а если сделать через объекты синхронизации - события,например?
Основное приложение | библиотека
CreateEvent -> WaitForSingleObject | OpenEvent -> SetEvent

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:07, 04-06-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ganselo

Старожил


Сообщения: 232
Благодарности: 90

Профиль | Сайт | Отправить PM | Цитировать


Цитата DillerInc:
DillerInc »
Решил проблему так:
В dll создал переменную флаг
Код: Выделить весь код
bool flag = false;
И две функции
Код: Выделить весь код
bool getFlag()
{
      return flag;
}
и
void ok()
{
      flag = false;
}
Если в dll хук сработал (т.е создалось какое то окно), то flag = true. А в приложении, в таймере вызываю функцию getFlag(), чтобы узнать, что появилась новое окно. Если она возвратила true, то я совершаю нужные мне действия и сообщаю dll о том, что приложение узнало о появлении нового окна, т.е вызываю функцию ok();

Но думаю эта не самый лучший вариант.

А насчет
Цитата DillerInc:
а если сделать через объекты синхронизации - события,например? »
можно попробывать...

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Отправлено: 18:12, 04-06-2009 | #3


Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


ganselo, если у вас оконное приложение,то можно из библиотеки послать какое-нибудь сообщение основному приложению,которое в свою очередь получит это сообщение через свою оконную процедуру.Если же окон нет,то тогда можно создать дополнительный поток,который и будет ждать события.Тут,я думаю,больше зависит от ваших условий в программе.

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций


Отправлено: 22:23, 04-06-2009 | #4


Аватара для ganselo

Старожил


Сообщения: 232
Благодарности: 90

Профиль | Сайт | Отправить PM | Цитировать


Цитата DillerInc:
если у вас оконное приложение »
Да оконное.
Цитата DillerInc:
то можно из библиотеки послать какое-нибудь сообщение основному приложению »
Например какое сообщение и как его послать основному?

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Отправлено: 15:20, 05-06-2009 | #5


Аватара для ganselo

Старожил


Сообщения: 232
Благодарности: 90

Профиль | Сайт | Отправить PM | Цитировать


Цитата DillerInc:
DillerInc »
Спасибо за помощь. Всё получилось.

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Отправлено: 17:32, 05-06-2009 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Hook

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Api call hook - нужна помощь Boa Soft Программирование и базы данных 4 01-03-2007 14:28
*Юный техник* | Помогите с Hook - убийцей мыши и клавы SASHA 333 Программирование и базы данных 2 21-02-2005 01:50
Delphi - Hook in delphi Interceptor Программирование и базы данных 1 27-08-2004 21:31
Hook для перехвата keyboard. Guest Программирование и базы данных 3 11-02-2004 09:47
SysTray, Hook, WM_COPYDATA KirillS Программирование и базы данных 14 10-06-2003 22:01




 
Переход