Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли отловить экстренное закрытие программы? [D5, Win95/98, WinME, WinXP]


denmin ©   (2004-08-20 10:00:00) 

Здравствуйте. Бывает такое, что программа при выполнении виснет, тогда закрыть ее можно только через диспетчер задач, или вообще виснет компьютер, тогда спасает только резет. Так вот необходимо отловить экстренное закрытие программы, и на это событие поставить обработку, а именно почистить временные базы.
Заранее благодарен.


Digitman   (2004-08-20 10:12:00) [1]


> Denmin ©   (20.08.04 10:07) [4]


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

ну , скажем, внедрить в АП всех GUI-процессов код, который перехватит вызов ф-ции TerminateProcess и известит специально подготовленное тобой приложение (надеюсь, оно-то не будет у тебя "висеть" ?) о попытке вызова этой ф-ции


Izyum   (2004-08-20 10:11:00) [2]

Может имеет смысл проверять/читсить временные базе не при завершении, а при запуске проги?


Denmin   (2004-08-20 10:07:00) [3]

->Digitman
да, ты прав, что-то я не подумал. извините.


Digitman   (2004-08-20 10:05:00) [4]


> виснет компьютер


> необходимо отловить экстренное закрытие программы, и на
> это событие поставить обработку, а именно почистить временные
> базы


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


ssk   (2004-08-20 10:04:00) [5]

было бы конечно неплохо, если бы программа работала, а компьютер "висел".


Рамиль   (2004-08-20 10:02:00) [6]

нельзя, на то оно и экстренное. Лучше пиши при запуске в реестр какой нибудь флаг, а при нормальном завершении его удаляй. при следующем запуске будет понятно, как завершилась программа.


Наверх

Титульная страница Поиск, карта сайта Написать письмо