[ franjo_tahi @ 13.01.2011. 08:52 ] @
Kako provjeriti s D2007 da li je startan Firebird i koja verzija?

Našao sam key u registry-u: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/FirebirdServerDefaultInstance

Radije bih provjerio direktno da li je starta servis. Kako?
[ franjo_tahi @ 13.01.2011. 12:41 ] @
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;