powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Выполнить процедуру при аварийном завершщении
24 сообщений из 24, страница 1 из 1
Выполнить процедуру при аварийном завершщении
    #39635246
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как выполнить процедуру при аварийном завершении программы ?
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635249
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотря насколько аварийное это завершение. Ответ может варьироваться от "finalization" до
"обломись".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635263
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apexplsql,

Можно попробовать присваивать ExitCode=0, только если все хорошо, а вначале инициализировать его не нулем.
Ну и в Starter.exe ждать завершения программы и проверять ExitCode.

Правда, это не поможет, если питание выключить - тоже аварийное завершение своего рода.
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635264
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockПравда, это не поможет, если питание выключить - тоже аварийное завершение своего рода.Поэтому можно при следующем запуске узнать, что было аварийно, и что-то сделать.
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635275
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apexplsqlКак выполнить процедуру при аварийном завершении программы ?
Сделай приложение, следящее за этим. Процедуру, соответственно, в следящем приложении размести.
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635339
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чччД,
А есть примеры такого приложения ?
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635368
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При входе создаете файл. При штатном выходе удаляете. Важные события можно в него логгировать.
Если при входе файл уже есть, значит предыдущий сеанс завершился фейлом. А содержимое файла возможно поможет понять, что и когда произошло.
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635373
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apexplsqlА есть примеры такого приложения ?Это Starter.exe из моего ответа.
Пример - около трех строчек кода:
1. CreateProcess - тут запускаем твою программу, получаем хендл процесса;
2. WaitFoeSingleObject( ХэндлПроцесса, INFINITE );
3. GetExitCodeProcess - получаем ExitCode, анализируем, принимаем решение, аварийно или нет.
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635377
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoПри входе создаете файл. При штатном выходе удаляете.Если программа позволяет запускать несколько копий - будет каша.
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635382
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockWaitFoeSingleObjectWaitForSingleObject
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635388
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock3. GetExitCodeProcess - получаем ExitCode, анализируем, принимаем решение, аварийно или нет.А как это сработает при вырубании света ?
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635400
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
24.04.2018 13:47, L_argo пишет:
> А как это сработает при вырубании света ?

а как ты собираешься "выполнять процедуру" на ВЫКЛЮЧЕННОМ хосте?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635418
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apexplsqlчччД,
А есть примеры такого приложения ?
А в чем проблема сделать такое?
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635466
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoYuRock3. GetExitCodeProcess - получаем ExitCode, анализируем, принимаем решение, аварийно или нет.А как это сработает при вырубании света ? 21363813
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635470
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo,

В общем - надо хранить идентификатор экземпляра программы, даты, еще может что где-то (например в файле, как ты предлагал приблизительно) с признаком успешного завершения и при запуске пытаться монопольно обрабатывать эти записи. А другие копии должны лочить свои области этого файла всю свою жизнь, чтобы вновь запускающиеся копии не смогли их прибить.
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635540
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий24.04.2018 13:47, L_argo пишет:
> А как это сработает при вырубании света ?

а как ты собираешься "выполнять процедуру" на ВЫКЛЮЧЕННОМ хосте?
Никак. Но позже получить признак "авария" можно. И отреагировать.

Тот же Файрфокс как-то знает, что предыд. сессия зафейлилась. Н-р по эл.питанию.
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635549
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
24.04.2018 17:17, L_argo пишет:
> Никак. Но позже получить признак "авария" можно. И отреагировать.

тогда только запись в файл с FILE_FLAG_WRITE_THROUGH
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635556
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто мешает читать журнал системы Windows?
Там всё фиксируется, разобраться не сложно.
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635654
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно идти от обратного, как винда -- писать в файл/реестр по таймеру, а при следующем запуске смотреть, все ли хорошо записалось (если нет "конца", то завершение было аварийным).
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635660
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iА кто мешает читать журнал системы Windows?
Там всё фиксируется, разобраться не сложно.
1. Он тормозной.
2. Ок, прочитали при запуске, разобрали всё, определили, что винда не была завершена корректно. Дальше что делать? Чем это поможет ТС?
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635680
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,
знать причину аварии - уже полдела.
Возможно, нужно провести какое-то восстановление данных, проверки целостности и т.д.
А как иначе узнать, что было отключение электропитания?
Писать лог каждую секунду по таймеру?
Лог лучше вести только событийный. Нормальное завершение - записали.
При запуске проверили лог - нет нормального завершения. Начинаем поиск в логе ОС.
Долго, но как иначе поймать сбой по питанию...
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635699
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iВозможно, нужно провести какое-то восстановление данных, проверки целостности и т.д.

Проверка целостности должна проводиться по-любому при каждом запуске.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635711
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iА как иначе узнать, что было отключение электропитания?
Писать лог каждую секунду по таймеру?Достаточно зафиксировать запуск и "пропустить" фиксацию закрытия. Сняли процесс или из розетки выключили - и то, и то - авария.
...
Рейтинг: 0 / 0
Выполнить процедуру при аварийном завершщении
    #39635714
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС вбросил и свалил, а вы тут херь несёте.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Выполнить процедуру при аварийном завершщении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]