Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.06;
Скачать: CL | DM;

Вниз

Как отловить завершение работы Windows из под сервиса?   Найти похожие ветки 

 
mx   (2007-10-16 09:44) [0]

Подскажите если кто знает, как при завершении работы остановить свой собственный сервис.

Проблема такая: сервис является клиентской частью программы и постоянно посылает сообщения серверной части через определенный порт. Все работает замечательно, кроме момента завершения работы Windows. Windows не может завершить работу при запущенном сервисе.

Заранее Всем спасибо.


 
tesseract ©   (2007-10-16 10:14) [1]

Обрабатывать WM_QUERYENSESSION. lParam - ноль в случае завершение работы.


 
mx   (2007-10-16 10:28) [2]

пробывал так, не получилось поймать момент :(

private
procedure WCL(var Message:TWMQueryEndSession); message WM_QUERYENDSESSION;

procedure TSclient.WCL(var Message: twmqueryendsession);
begin
  message.result:=1;
  message.msg:=wm_endsession;
 {здесь завершаю сервис}
end;


 
Сергей М. ©   (2007-10-16 10:46) [3]


> Windows не может завершить работу при запущенном сервисе


Поэтому Windows подает сервису команду SERVICE_CONTROL_STOP, на которую твой сервис должен немедленно отреагировать и завершить свою работу.


 
mx   (2007-10-16 10:54) [4]


> Сергей М. ©   (16.10.07 10:46) [3]
> Поэтому Windows подает сервису команду SERVICE_CONTROL_STOP,
>  на которую твой сервис должен немедленно отреагировать
> и завершить свою работу.


Если не сложно, дай пожалуйста маленький кусочек кода


 
Сергей М. ©   (2007-10-16 11:04) [5]

procedure TMyService.MyServiceStop(Sender: TService; var Stopped: Boolean);
begin
 Stopped := True;
end;


 
Dmitry S ©   (2007-10-16 13:33) [6]

А что, завершения не произойдет, если сервис откажется останавливаться?


 
Сергей М. ©   (2007-10-16 14:05) [7]

Подозреваю что речь на самом деле идет об обычном приложении, запуздырившим иконку в трей и посему гордо именующем себя "сервисом")


 
mx   (2007-10-16 14:53) [8]

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



Страницы: 1 вся ветка

Текущий архив: 2008.07.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
15-1211704569
Kostafey
2008-05-25 12:36
2008.07.06
С днем рождения ! 24 мая


15-1211360284
Knight
2008-05-21 12:58
2008.07.06
Программа для MS SQL..


15-1211464189
БарЛог
2008-05-22 17:49
2008.07.06
Почтовый вервер не отправляет "во вне" :(


2-1213023051
ЙаТ
2008-06-09 18:50
2008.07.06
Свойства файла или папки


15-1211296805
buzb
2008-05-20 19:20
2008.07.06
А есть ли возможность в Делфи 7 сворачивать функции как в 2007