|
|
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
Как выполнить процедуру при аварийном завершении программы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 12:03 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
Смотря насколько аварийное это завершение. Ответ может варьироваться от "finalization" до "обломись". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 12:08 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
apexplsql, Можно попробовать присваивать ExitCode=0, только если все хорошо, а вначале инициализировать его не нулем. Ну и в Starter.exe ждать завершения программы и проверять ExitCode. Правда, это не поможет, если питание выключить - тоже аварийное завершение своего рода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 12:19 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
YuRockПравда, это не поможет, если питание выключить - тоже аварийное завершение своего рода.Поэтому можно при следующем запуске узнать, что было аварийно, и что-то сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 12:20 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
apexplsqlКак выполнить процедуру при аварийном завершении программы ? Сделай приложение, следящее за этим. Процедуру, соответственно, в следящем приложении размести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 12:31 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
чччД, А есть примеры такого приложения ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 13:28 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
При входе создаете файл. При штатном выходе удаляете. Важные события можно в него логгировать. Если при входе файл уже есть, значит предыдущий сеанс завершился фейлом. А содержимое файла возможно поможет понять, что и когда произошло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 13:39 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
apexplsqlА есть примеры такого приложения ?Это Starter.exe из моего ответа. Пример - около трех строчек кода: 1. CreateProcess - тут запускаем твою программу, получаем хендл процесса; 2. WaitFoeSingleObject( ХэндлПроцесса, INFINITE ); 3. GetExitCodeProcess - получаем ExitCode, анализируем, принимаем решение, аварийно или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 13:42 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
L_argoПри входе создаете файл. При штатном выходе удаляете.Если программа позволяет запускать несколько копий - будет каша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 13:44 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
YuRockWaitFoeSingleObjectWaitForSingleObject ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 13:44 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
YuRock3. GetExitCodeProcess - получаем ExitCode, анализируем, принимаем решение, аварийно или нет.А как это сработает при вырубании света ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 13:47 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
24.04.2018 13:47, L_argo пишет: > А как это сработает при вырубании света ? а как ты собираешься "выполнять процедуру" на ВЫКЛЮЧЕННОМ хосте? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 13:56 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
apexplsqlчччД, А есть примеры такого приложения ? А в чем проблема сделать такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 14:13 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
L_argoYuRock3. GetExitCodeProcess - получаем ExitCode, анализируем, принимаем решение, аварийно или нет.А как это сработает при вырубании света ? 21363813 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 15:07 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
L_argo, В общем - надо хранить идентификатор экземпляра программы, даты, еще может что где-то (например в файле, как ты предлагал приблизительно) с признаком успешного завершения и при запуске пытаться монопольно обрабатывать эти записи. А другие копии должны лочить свои области этого файла всю свою жизнь, чтобы вновь запускающиеся копии не смогли их прибить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 15:16 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий24.04.2018 13:47, L_argo пишет: > А как это сработает при вырубании света ? а как ты собираешься "выполнять процедуру" на ВЫКЛЮЧЕННОМ хосте? Никак. Но позже получить признак "авария" можно. И отреагировать. Тот же Файрфокс как-то знает, что предыд. сессия зафейлилась. Н-р по эл.питанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 17:17 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
24.04.2018 17:17, L_argo пишет: > Никак. Но позже получить признак "авария" можно. И отреагировать. тогда только запись в файл с FILE_FLAG_WRITE_THROUGH Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 17:34 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
А кто мешает читать журнал системы Windows? Там всё фиксируется, разобраться не сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 17:47 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
Можно идти от обратного, как винда -- писать в файл/реестр по таймеру, а при следующем запуске смотреть, все ли хорошо записалось (если нет "конца", то завершение было аварийным). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 20:05 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
d7iА кто мешает читать журнал системы Windows? Там всё фиксируется, разобраться не сложно. 1. Он тормозной. 2. Ок, прочитали при запуске, разобрали всё, определили, что винда не была завершена корректно. Дальше что делать? Чем это поможет ТС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 20:26 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
YuRock, знать причину аварии - уже полдела. Возможно, нужно провести какое-то восстановление данных, проверки целостности и т.д. А как иначе узнать, что было отключение электропитания? Писать лог каждую секунду по таймеру? Лог лучше вести только событийный. Нормальное завершение - записали. При запуске проверили лог - нет нормального завершения. Начинаем поиск в логе ОС. Долго, но как иначе поймать сбой по питанию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 21:16 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
d7iВозможно, нужно провести какое-то восстановление данных, проверки целостности и т.д. Проверка целостности должна проводиться по-любому при каждом запуске. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 22:06 |
|
||
|
Выполнить процедуру при аварийном завершщении
|
|||
|---|---|---|---|
|
#18+
d7iА как иначе узнать, что было отключение электропитания? Писать лог каждую секунду по таймеру?Достаточно зафиксировать запуск и "пропустить" фиксацию закрытия. Сняли процесс или из розетки выключили - и то, и то - авария. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 22:37 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=110&tid=2040968]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 348ms |

| 0 / 0 |
