No se si sera lo bastante simple, pero puedes usar esta funcion para detener un servicio:
Código Delphi
[-]
uses WinSvc;
procedure StopService(Nombre: String);
var
ServiceControlManager: SC_HANDLE;
Service: SC_HANDLE;
ServiceStatus: SERVICE_STATUS;
begin
ServiceControlManager:= OpenSCManager(nil, nil, SC_MANAGER_CONNECT);
if ServiceControlManager <> 0 then
begin
Service:= OpenService(ServiceControlManager,PChar(Nombre),SERVICE_ALL_ACCESS);
if Service <> 0 then
begin
if QueryServiceStatus(Service, ServiceStatus) then
begin
if ServiceStatus.dwCurrentState <> SERVICE_STOPPED then
ControlService(Service, SERVICE_CONTROL_STOP, ServiceStatus);
end;
CloseServiceHandle(Service);
end;
CloseServiceHandle(ServiceControlManager);
end;
end;
Para usarla solo tienes que pasarle el nombre del servicio que quieres detener:
Código Delphi
[-]
StopService('NombreDelServicio');