Главная страница
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.025 c
9-1172040240
Cerberus
2007-02-21 09:44
2008.07.06
Вопрос XProger у по его сетевому модулю.


15-1211516372
Knight
2008-05-23 08:19
2008.07.06
Есть ли свободные векторные карты с привязками?


15-1211574893
buzb
2008-05-24 00:34
2008.07.06
Как реально заработать на программах?


3-1201519088
ganda
2008-01-28 14:18
2008.07.06
Table is busy


15-1211486281
BlueDragon
2008-05-22 23:58
2008.07.06
Задание с ЕГЭ 2008