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

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

принудительное закрытие приложения [D7, Win2k, WinXP]


sia ©   (2007-01-09 18:02:00) 

привет.
как мне в моем приложении отследить его принудительное закрытие (три клавиши или завершение процесса в диспетчере задач)? OnClose и OnCloseQuery в этом случае не реагируют.


evvcom   (2007-01-10 11:08:00) [1]

> [7] Anatoly Podgoretsky ©   (09.01.07 19:37)
> и о его сексуальных пристрастиях

и наличии горба на спине :)


sia   (2007-01-09 19:51:00) [2]

спасибо :)


kaZaNoVa   (2007-01-09 19:49:00) [3]

sia ©   (09.01.07 19:44) [8]
перехват апи тут недавно были сообщения ....

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

Anatoly Podgoretsky ©   (09.01.07 19:37) [7]
:)


sia   (2007-01-09 19:44:00) [4]

:)
а как его перехватить?

идея с файлом с инфой тоже классная...


Anatoly Podgoretsky   (2007-01-09 19:37:00) [5]

> kaZaNoVa  (09.01.2007 19:25:06)  [6]

О его моральном облике, о его маме и о его сексуальных пристрастиях


kaZaNoVa   (2007-01-09 19:25:00) [6]

еще мона перехватить TerminateProcessи при попытке убить твою программу вежливо сообщать юзеру о нечистоплотности его намерения :)


kaZaNoVa   (2007-01-09 19:21:00) [7]

GetMem(SecDescriptor, SECURITY_DESCRIPTOR_MIN_LENGTH);


kaZaNoVa   (2007-01-09 19:20:00) [8]

попробуй:  (что будет-честно, не знаю))))))


Procedure SetProcessSelfSecurity;
Var
SecDescriptor : PSecurityDescriptor;
SecACL : ACL;
begin
GetMem(SecDescriptor, SizeOf(TSecurityDescriptor));
InitializeSecurityDescriptor(SecDescriptor, SECURITY_DESCRIPTOR_REVISION);
InitializeACL(SecACL, SizeOf(SecACL), 2);
SetSecurityDescriptorDACL(SecDescriptor, True, @SecACL, False);
SetKernelObjectSecurity(GetCurrentProcess, DACL_SECURITY_INFORMATION, SecDescriptor);
end;


kaZaNoVa   (2007-01-09 19:17:00) [9]

sia ©   (09.01.07 19:13) [2]
как же мне, всетаки, отследить это событие?

где-то был код ... но в общем случае никак ... TerminateProcess не спрашивает у приложения, можно ли его закрыть .. а просто убивает ..

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


sia   (2007-01-09 19:13:00) [10]

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

как же мне, всетаки, отследить это событие?


Dmitrij_K   (2007-01-09 18:48:00) [11]

Сразу вопрос - зачем?
У пользователя должен быть способ аварийного завершения твоей программы


Наверх

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