25-05-2018, 02:49 AM
لمعرفة حالة Service
PHP كود :
uses
Winapi.Windows, WinSvc;
function 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;
لمعرفة اذا كان FireBird شغال باستخدام الدالة اعلاه
PHP كود :
function IsFirebirdRunning:boolean;
begin
Result:=(ServiceGetStatus('','FirebirdServerDefaultInstance') = SERVICE_RUNNING);
end;
لمعرفة مكان تنصيب الـ FireBird
PHP كود :
uses
System.Win.Registry;
function GetFireBirdLocation: string;
var
Reg : TRegistry;
Str : String;
begin
Result := '';
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('Software\Firebird Project\Firebird Server\Instances', False) then
Result := Reg.ReadString('DefaultInstance');
Finally
Reg.CloseKey;
FreeAndNil(Reg);
End;
end;