![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| fromrus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 30.3.2008 Репутация: нет Всего: нет |
Задали написать хук активации окна,точнее чтоб при регистрации хука другие окна в системе активироывать было нельзя.Пишу длл(ВС 2008):
В с++ не разбираююсь,поэтому прошу помощи у знающих людей...Или объясните мне логику вызова/регистрации этого хука,Плз!Спасибо! |
|||
|
||||
| ama_kid |
|
||||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 5 Всего: 95 |
Статей на эту тему море и маленькая тележка... Попробую в двух словах: 1) Организовываешь в dll-библиотеке две экспортируемые функции по установке и снятию хуковой функции. 2) В хуковой функции (она тоже располагается в dll) организуешь логику работы хука по глобальному взаимодействию с системой. В данном случае - просто вернуть не-ноль при получении HCBT_ACTIVATE. 3) В своем приложении организуешь вызов функции установки хука. Пока твое приложение работает, в адресное пространство всех процессов системы будет подгружаться хуковая функция из твоей библиотеке. 4) По завершению работы приложения - вызываешь функцию по снятию хука. Все... -------------------- самурай без меча подобен самураю с мечом, но только без меча |
||||
|
|||||
| fromrus |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 30.3.2008 Репутация: нет Всего: нет |
помучился и написал,но не работает(писал в Билдере):
//Проедура вызова хука
//В оьраьотчике кнопки хук должен регистрироваться
//Ну и при нажатии на другую кнопку хук деактивируется
Дело в том,что при нажатии на Батон1 нет никакой реакции-из-за чего ? |
||||||
|
|||||||
| fromrus |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 30.3.2008 Репутация: нет Всего: нет |
точнее сделал следущее:
//ДЛЛ
далее в борланде:
Но как сказал-ничего не работает-в чем ошибка???? |
||||
|
|||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 5 Всего: 95 |
Наверное в том, что функции с именем "Vse Ok" нет в твоей dll
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| fromrus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 30.3.2008 Репутация: нет Всего: нет |
ах да,есть такое
Но это ничего не изменило...скопировал полностью с мсдн:
не работает...может ошибка в библиотеке???Спасите плз! |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 5 Всего: 95 |
проверяй, что возвращают LoadLibrary и GetProcAddress.
Проверяй, что функция HookProc действительно экспортируется из Dll (не вижу __declspec(dllexport)). -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| fromrus |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 30.3.2008 Репутация: нет Всего: нет |
подправил,вот полноценный код:
длл сделана в ВС2008
далее в борланде в обработчике кнопки пишу:
выяснилось что ХУКПРОК=нулу...почму не наю...и как писать: extern "C" __declspec(dllexport) LRESULT CALLBACK HookProc(int code,WPARAM wParav,LPARAM lParam); или __declspec(dllexport) LRESULT CALLBACK HookProc(int code,WPARAM wParav,LPARAM lParam); ??Билдится в обоих случаях удачно |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |