Форум: "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