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

Вниз

Остановка сервиса   Найти похожие ветки 

 
pavel_guzhanov   (2004-10-29 16:21) [0]

Подскажите, как можно программно остановить сервис? Дело в том, что моя программа - сервис. Она получает команды через telnet. Одна из команд - stop, а вот как по ней остановить программу - не знаю. Помогите, кто в курсе. Application.Terminate - не катит


 
Дмитрий Ботвин   (2004-10-29 16:51) [1]

Вот так:

Uses Winsvc;

procedure TForm1.ExecuteControlService(ServiceName: String);
 var
   SCManagerHandle, SCHandle  : THandle;
   ServiceStatus : TServiceStatus;
 begin
   // 1. Подключениемся к менеджеру сервисов
   SCManagerHandle := OpenSCManager(PChar(CompName.Text), nil, GENERIC_READ);
   // 2. Открытие сервиса
   SCHandle := OpenService(SCManagerHandle, PChar(ServiceName), SERVICE_ALL_ACCESS);
   // 3. Управление состоянием
   ControlService(SCHandle, SERVICE_CONTROL_STOP, ServiceStatus);
   // 4. Закрытие сервиса
   CloseServiceHandle(SCHandle);
   // 5. Закрытие менеджера
   CloseServiceHandle(SCManagerHandle);
 end;


 
pavel_guzhanov   (2004-10-29 16:52) [2]

ух ты! Спасибо! Буду пробовать


 
Erik1 ©   (2004-10-29 19:50) [3]

Думаю тебе надо другое, если твой сервис хочет сам себя остановить то: Останови свой тред(если есть) и сделай ему free. Останови основной цикл сервиса например установкой флага.



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
1-1101674331
Bobby Digital
2004-11-28 23:38
2004.12.12
Код виндовса ?


3-1100252331
Olga_cc
2004-11-12 12:38
2004.12.12
Qreport


6-1096286797
andrey__
2004-09-27 16:06
2004.12.12
модем. связь между 2-мя компами (её автоматизация)


14-1100851819
БареллО
2004-11-19 11:10
2004.12.12
Совместимость


3-1100435214
Алексей
2004-11-14 15:26
2004.12.12
красивый DBGrid