Oldal: 1 / 1

Firebird útvonal lekérdezése - Windows

Elküldve: 2016.09.24. 08:36
Szerző: berkesi33
Sziasztok,
hogyan lehet lekérdezni a Firebird telepítési útvonalat Delphiben, vagy C-ben?

Re: Firebird útvonal lekérdezése - Windows

Elküldve: 2016.09.24. 10:41
Szerző: gaborg
A Firebird, vagy InterBase útvonal lekérdezéséhez a Registry-ben van lehetőség:

Delphi:

Kód: Egész kijelölése

const
   FB_RegKey = '\Software\Firebird Project\Firebird Server\Instances';
   FB_DefaultInstance = 'DefaultInstance';
   IB_RegKey = '\Software\Borland\InterBase\CurrentVersion';
   IB_RootDir = 'RootDirectory';
   Regroot = 'HKEY_LOCAL_MACHINE';

function GetFirebirdRootDir : string;
begin
   Result := '';
   with TRegistry.Create do begin
      RootKey := Regroot;

      { Firebird kulcs }
      if OpenKeyReadOnly(FB_RegKey) then begin
         if ValueExists(FB_DefaultInstance) then Result := ReadString(FB_DefaultInstance);
         CloseKey;
      end;

      { Borland/Interbase kulcs }
      if Length(Result)=0 then begin
         if OpenKeyReadOnly(IB_RegKey) then begin
            if ValueExists(IB_RootDir) then Result := ReadString(IB_RootDir);
            CloseKey;
         end;
      end;
      Free;
   end;
end;


c#:

Kód: Egész kijelölése

const string FB_RegKey = "\\Software\\Firebird Project\\Firebird Server\\Instances";
const string FB_DefaultInstance = "DefaultInstance";
const string IB_RegKey = "\\Software\\Borland\\InterBase\\CurrentVersion";
const string IB_RootDir = "RootDirectory";
const string Regroot = "HKEY_LOCAL_MACHINE";

public string GetFirebirdRootDir() {
   string fbpath = Registry.GetValue(Regroot+FB_RegKey, FB_DefaultInstance, null).ToString();
   if (fbpath == null) {
      fbpath = Registry.GetValue(Regroot + IB_RegKey, IB_RootDir, null).ToString();
   }
   return fbpath;
}