Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];

Вниз

Как отловить завершение работы 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
2-1212662430
TBase_Tree
2008-06-05 14:40
2008.07.06
Хук не работает, подскажите в чем дело ...


2-1212990723
Mishenka
2008-06-09 09:52
2008.07.06
Как сделать панель наподобие инспектора объектов в Delphi ?


2-1212723801
DimonS
2008-06-06 07:43
2008.07.06
Странное поведение выборки в Access


3-1201519467
Валентин Иванов
2008-01-28 14:24
2008.07.06
Работа с ADOTable в Delphi7


15-1210917516
Татьяна
2008-05-16 09:58
2008.07.06
Базы данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский