uses Winapi.WinSvc, Vcl.SvcMgr;
function IsMSSQLServerRunning: Boolean;
var
ServiceManager: TServiceManager;
SQLService: TService;
begin
Result := False;
ServiceManager := TServiceManager.Create(nil);
SQLService := TService.Create(nil);
try
ServiceManager.Access := SERVICE_QUERY_STATUS;
SQLService.ServiceName := 'MSSQLSERVER'; // نام سرویس MSSQLServer
if ServiceManager.Connect then
begin
try
if SQLService.Open then
begin
try
Result := (SQLService.Status = SERVICE_RUNNING);
finally
SQLService.Close;
end;
end;
finally
ServiceManager.Disconnect;
end;
end;
finally
ServiceManager.Free;
SQLService.Free;
end;
end;