Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2013, 12:40   #1
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию Перехват закрытия программы из DLL

Доброго времени суток!
Есть некая программа(не моя), к ней подключена моя DLL, и я хочу выполнить некоторый код перез закрытием этой программы.
Т.е. мне нужно каким-то образом отловить событие onClose или onDestroy основной формы программы, но когда я пытаюсь таким образом:
Application.MainForm.OnClose:=моя процедура
присвоить свою процедуру на это событие программа вылетает, как выяснилось происходит это потому что Application.MainForm = nil.
Подскажите пожалуйста путь или направление решения проблемы, заранее спасибо!
Crystallon вне форума Ответить с цитированием
Старый 11.01.2013, 13:09   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

поиск по форуму DLL Application дает 1 2 3 4

Цитата:
Т.е. мне нужно каким-то образом отловить событие onClose или onDestroy основной формы программы
если другая программа не захочет, то так легко не получится.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 11.01.2013 в 13:13.
evg_m вне форума Ответить с цитированием
Старый 11.01.2013, 13:25   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в принципе при завершении перед выгрузкой dll, DllMain(как обьявлять не помню) будет вызвана с уведомлением dll_process_detach.
только вот там минимум действий должен лишь выполнятся.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2013, 13:40   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Надежнее дёргать функцию из DLL при выходе из ПО.
Человек_Борща вне форума Ответить с цитированием
Старый 11.01.2013, 14:47   #5
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Пепел Феникса
Спасибо, попробую с детачем.

evg_m
Как запрос "DLL Application" отражает суть моей проблемы? И как суть моей проблемы отражают темы которые вы дали? Не отрицаю что возможно косвенным образом в них упоминается подобное, но ни одна из них не заведена по похожему вопросу и тем более не содержит похожего вопроса в названии темы... Это тоже самое что искать "мобильный телефон" когда тебе нужен конкретно "nokia100500".

Последний раз редактировалось Crystallon; 11.01.2013 в 15:15.
Crystallon вне форума Ответить с цитированием
Старый 11.01.2013, 16:09   #6
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

С детачем сработало, сделал что хотел, спасибо! =)
Crystallon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват вызова функции с DLL drayvhard Win Api 3 01.12.2012 20:58
Крестик закрытия программы skanku C++ Builder 1 26.05.2012 08:12
Инициализация закрытия программы, если не был найден файл? Vohakisa Помощь студентам 2 30.05.2010 10:23
Внедрение DLL и перехват API-функций Doom_Rooster Win Api 4 01.04.2010 03:37
Перехват закрытия окна GAGARIN-NEW Общие вопросы Delphi 3 11.11.2007 12:30