Нештатное завершение программы
Суть вопроса такова:
1. Когда происходит уничтожение программы, например из Task Manager, то можно ли как-то отловить это событие в Delphi (с последующими действиями, например, сохранить что-то)?
2. Когда, например, перезагружаем PC, то на некоторые программы виндос ругается, что мол они активны и предлагает нам диалог выхода, предлагаемый этой программой, где мы что-то сохраняем и делаем всякие действия. Вопрос - как сделать подобное?
Если приложение прибивается через "End process", то это никак не отследишь...
Цитата: Yurec
1. Когда происходит уничтожение программы, например из Task Manager, то можно ли как-то отловить это событие в Delphi (с последующими действиями, например, сохранить что-то)?
Возможно все, в том числе и это. Например с помощью перехвата API вызовов. Весь вопрос здесь в целесообразности данного решения.
Цитата: Yurec
2. Когда, например, перезагружаем PC, то на некоторые программы виндос ругается, что мол они активны и предлагает нам диалог выхода, предлагаемый этой программой, где мы что-то сохраняем и делаем всякие действия. Вопрос - как сделать подобное?
Еще один вариант обрабатывать сообщения WM_QUERYENDSESSION и WM_ENDSESSION.
можно создавать пустой файл например во временном каталоге. при правльном выходе из программы удалять его. соответственно если при запуске проги этот файл существует то прога завершена некорректно