Главная страница
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.017 c
15-1211457004
Дмитрий С
2008-05-22 15:50
2008.07.06
На каком это языке?


15-1211181140
BlueDragon
2008-05-19 11:12
2008.07.06
ЕГЭ по информатике


15-1211642824
Пробегал2...
2008-05-24 19:27
2008.07.06
Надпись на футболке


2-1212726295
Диниска
2008-06-06 08:24
2008.07.06
Юникод :((


11-1191199661
Jon
2007-10-01 04:47
2008.07.06
GRushButton Accelerator