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

Вниз

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

 
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 вся ветка

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

Наверх




Память: 0.44 MB
Время: 0.039 c
6-1096822363
Wolverrum
2004-10-03 20:52
2004.12.12
ADO и CGI


6-1096974106
Algol
2004-10-05 15:01
2004.12.12
Даты изменения файлов по FTP


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


3-1100091715
denis24
2004-11-10 16:01
2004.12.12
insert into....select


14-1101103150
speed
2004-11-22 08:59
2004.12.12
Управление БД SQL-запросами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский