Bio sam prebrz. Našao sam na web-u, možda kome zadreba:
Code:
function TForm1.ServiceGetStatus(sMachine, sService: string ): DWord;
var
schm,
schs : SC_Handle;
ss : TServiceStatus;
dwStat : DWord;
begin
dwStat := 0;
schm := OpenSCManager(PChar(sMachine), nil, SC_MANAGER_CONNECT);
if (schm > 0) then begin
schs := OpenService(schm, PChar(sService), SERVICE_QUERY_STATUS);
if (schs > 0) then begin
if (QueryServiceStatus(schs, ss)) then begin
dwStat := ss.dwCurrentState;
end;
CloseServiceHandle(schs);
end;
CloseServiceHandle(schm);
end;
Result := dwStat;
end;
i poziv iz programa:
Code:
var FirebirdIsRunning: boolean;
begin
FirebirdIsRunning := (ServiceGetStatus('','FirebirdServerDefaultInstance') <> SERVICE_RUNNING);
if FirebirdIsRunning then ShowMessage('Ne radi')
else ShowMessage('Radi');
end;