uses winsvc;
procedure UninstallService(ServiceName: string);
var
SCManager,Service: THandle;
ServiceStatus: SERVICE_STATUS;
begin
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);//获得SC管理器句柄
if SCManager = 0 then Exit;
try
Service := OpenService(SCManager, PChar(ServiceName), SERVICE_ALL_ACCESS);
//以最高权限打开指定服务名的服务,并返回句柄
ControlService(Service, SERVICE_CONTROL_STOP, ServiceStatus);
//向服务器发送控制命令,停止工作, ServiceStatus 保存服务的状态
DeleteService(Service);
//从SC ManGer 中删除服务
CloseServiceHandle(Service);
//闭句柄,释放资源
finally
CloseServiceHandle(SCManager);
//闭句柄,释放资源
end;
end;