![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.02.2010
Сообщений: 28
|
![]()
Как успеть исполнить код до закрытия программы диспетчером?
Он, как я понимаю, обходит процедуры OnClose и OnCloseQuery формы. Где записать код примерно такого содержания, что бы программа успела его выполнить? и реально ли это вобще? Код:
|
![]() |
![]() |
![]() |
#2 | |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 03.02.2010
Сообщений: 28
|
![]()
Даже если форма скрыта?
т.е Код:
проверил, не пашет даже шоумесседж. там идет какое то другое событие. как бы экстренное завершение. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> Как успеть исполнить код до закрытия программы диспетчером?
если задача снимается через [End Process], то никак.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 03.02.2010
Сообщений: 28
|
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
Нет, на сколько я знаю. Там просто прерывается работа всех потоков и ввода/вывода процесса в том месте, где они были. В частности, ТСП сокет на удаленной стороне рано или поздно вылетит по ошибке 10053 или 10054.
Единственное, что можно — это запускать 2 процесса, и если один прибили, то второй за него отомстит ))
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 03.02.2010
Сообщений: 28
|
![]()
Если запущу 2 одинаковых, будет порт\соккет эррор.
Мне надо добиться того, что бы на стороне сервера не вылазила ошибка. Прочел про хук процесса ZwTerminateProcess. но как то это уже черезчур) Судя по всему, единственный ок вариант будет блокировка диспетчера, пока не будет получен определенный сигнал со стороны сервера. Последний раз редактировалось Stilet; 20.02.2011 в 19:04. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> Если запущу 2 одинаковых, будет порт\соккет эррор.
ну не так прямолинейно, конечно ) > Мне надо добиться того, что бы на стороне сервера не вылазила ошибка. Сервер не ваш, что ли? Тогда нереально. Разве что на низком уровне послать правильно сформированый пакет, который закроет удаленный сокет. > Прочел про хук процесса ZwTerminateProcess. > вариант будет блокировка диспетчера Может и вариант. А что делать, если сетевую карту задизейблят, например? Или сетевой кабель уборщица шваброй заденет? Или провайдер упадёт?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 03.02.2010
Сообщений: 28
|
![]()
>>Сервер не ваш, что ли? Тогда нереально. Разве что на низком уровне послать правильно сформированый пакет, который закроет удаленный сокет.
мой, но при работе, всплывающие ошибки не всегда хорошо) Сделал все блокировкой диспетчера. Думаю, что прокатит) Цитата:
|
|
![]() |
![]() |
![]() |
#10 | |
DelphiProger
Участник клуба
Регистрация: 14.11.2010
Сообщений: 1,023
|
![]() Цитата:
Код:
VirusN13
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Application.Terminate или Close? | Alexei91 | Общие вопросы Delphi | 10 | 22.09.2010 03:50 |
APPLICATION c++ | 4ika | Общие вопросы C/C++ | 1 | 14.04.2010 20:43 |
Application.terminate | GAGARIN-NEW | Общие вопросы Delphi | 11 | 09.03.2008 19:32 |
ошибка terminate | KORT | Общие вопросы Delphi | 9 | 07.10.2007 00:56 |
поток, который по завершению (Terminate) передает в основную форму информацию о файле | 1Andrey1 | Общие вопросы Delphi | 5 | 10.09.2007 19:40 |