procedure StartService(psServiceName: string);
var
hscmanager,
hService: SC_HANDLE;
lpServiceArgVectors: Pchar;
returnstatus: TServiceStatus;
begin
try
lpServiceArgVectors := nil;
hscmanager := OpenSCManager(nil,nil,SC_MANAGER_ENUMERATE_SERVICE);
hService := OpenService(hscmanager,PChar(psServiceName),SERVICE_ALL_ACCESS);
QueryServiceStatus(hService,returnstatus); //查看该Service的状态
if returnstatus.dwCurrentState=SERVICE_STOPPED then //如果该Service已停止则启动它
StartService(hService,0,lpServiceArgVectors);
finally
CloseServiceHandle(hService);//关闭该Serviceend;
end;
end;