Показать сообщение отдельно
  #4  
Старый 03.01.2014, 18:13
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

На самом деле - практически никак.
Более того, OnClose и OnCloseQuery могут не сработать дяже просто при закрытии сессии (сам "нарвался"). Если разговор идет о закрытии через Диспетчер задач, то надо хукать TerminateProcess, который, на самом-то деле, сам убиваемый процесс и не спрашивает ниочем. Просто гасит без всякой жалости.

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