![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
Всем доброго времени суток. Собственно вопрос, каким образом можно перед завершением процесса выполнить к примеру несколько функций ...
Ну рассматривать случай события OnClose думаю не стоит ... с ним и так всё ясно ... Интересует завершение программы через диспетчер задач ... Кто может подсказать, возможно ли это выполнить ? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
![]()
Нужна вторая программа, которая будет следить за этим процессом. Тогда можно что угодно делать: восстанавливать процесс, вешать события на запуск\остановку процесса и.т.д.
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Из убиваемого процесса думаю что никак, если из диспетчера задач тупо убивают процесс.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
Вариант 1: Пишем DLL, внедряем в процесс и ловим DLL_PROCESS_DETACH и DLL_THREAD_DETACH. Второго, обычно, хватает. Оба означают следующее: 1. программа закрывается 2. Кто-то намеренно выгружает вашу DLL, или не дает её внедрить. 3. Куча всяких факторов X... Вариант 2: Установка ловушки на NtTerminateProcess или ZwTerminateProcess Вариант 3: Пишется ядерных хук на действия над процессом X, или используется EasyHook библиотека(Си++). |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
Но это не решение, само по себе завершение программы не страшно, нужно чтобы перед завершением процесса программа выполнила ряд необходимых функций.
А то, что 2ая программа будет знать, что первая закрыта - не позволит первой выполнить нужные функции ... |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
![]() Код:
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
![]()
Не, эта тема не прокатит ...
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
ТС, в вашем случае, только перехват API, т.е. прерываете цепочку API вызовов, делаете дело, продолжаете цепочку и по закрывается.
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 30.05.2011
Сообщений: 651
|
![]() Код:
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ. Список услуг и портфолио на сайте www.andreygrom.ru |
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 24.07.2009
Сообщений: 638
|
![]()
Уж не вирус ли это какой ни будь, который перед тем как его убьют должен отформатировать диск ?
![]() Других вариантов зачем программа должна что то сделать перед тем как ее намеренно снимают через диспетчер (!), я не вижу. ![]()
** Удача терпелива. **
Vad3333@inbox.ru |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Завершение процесса | romanzi | Win Api | 11 | 16.08.2011 16:14 |
Завершение процесса | *stRong* | Visual C++ | 1 | 17.02.2011 09:40 |
Запуск процесса в потоке, завершение процесса в указааноое время, Дайте совет | Человек_Борща | Общие вопросы Delphi | 3 | 29.08.2010 12:58 |
завершение процесса | jone | Общие вопросы Delphi | 14 | 28.10.2008 17:35 |
Завершение процесса | Terran | Win Api | 3 | 04.01.2008 12:09 |