Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
ВнизСтарт стоп сервиса Найти похожие ветки
← →
maxim161 © (2006-01-31 19:31) [0]В общем, сталкнулся с такой проблемой: Сервис установить\удалить командами servicename /(un)install я могу, а как стартануть\остановить сервис, может быть есть что-то вроде servicename /start...
← →
xShadow © (2006-01-31 19:56) [1]net start и net stop смотри
← →
Джо © (2006-01-31 20:11) [2]Смотри Service functions в SDK. В частности, стартует сервис функция StartServive, приостанавливает и останавливает функция ControlService с соответствующими параметрами, если не ошибаюсь.
← →
Rouse_ © (2006-01-31 21:46) [3]в ServiceName имя сервиса:
procedure StopService;
var
SCManager, Service: SC_HANDLE;
ServiceStatus: TServiceStatus;
begin
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCManager <> 0 then
try
Service := OpenService(SCManager, ServiceName, SERVICE_STOP);
if Service <> 0 then
try
if not ControlService(Service, SERVICE_CONTROL_STOP, ServiceStatus)
and (ServiceStatus.dwCurrentState = SERVICE_STOPPED) then
begin
ShowMessage("StopService > ControlService: [SERVICE_CONTROL_STOP] " + SysErrorMessage(GetLastError));
Exit;
end;
finally
CloseServiceHandle(Service);
end;
finally
CloseServiceHandle(SCManager);
end;
end;
function RunService: Boolean;
var
SCManager, Service: SC_HANDLE;
P: PChar;
begin
Result := False;
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCManager <> 0 then
try
Service := OpenService(SCManager, ServiceName, SERVICE_START);
if Service <> 0 then
try
P := nil;
Result := StartService(Service, 0, P) or
(GetLastError = ERROR_SERVICE_ALREADY_RUNNING);
finally
CloseServiceHandle(Service);
end
else
Result := GetLastError = ERROR_SERVICE_DOES_NOT_EXIST;
finally
CloseServiceHandle(SCManager);
end;
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c