如何在delphi中找到firebird的安装位置和位置

时间:2014-07-11 13:44:45

标签: windows delphi search path registry

问题:我需要修改firebird中的aliases.conf但是......因为我们知道用户可以在任何他想要的地方安装firebird。所以我需要以编程方式找出firebird的安装位置。我尝试通过注册表来做到这一点,但它并不是一个好主意,因为几乎每一个新版本的Windows(2000,XP,VISTA,7,8和32位或64位,可能是128位)注册表项得到改变。我也尝试找出搜索注册表的过程,如简单的文本文件,但没有结果。我试图找到" HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ SharedDLLs \ aliases.conf"但这不是简单的方法。可能问题不在拉撒路的注册表功能中,但我不知道。所以,可能有人知道如何检查firebird是否安装在哪里。简而言之:我将使用数据库文件安装我的应用程序,并且必须以静默方式修改aliases.conf。

1 个答案:

答案 0 :(得分:4)

您可以通过检查注册表项HKLM\Software\Firebird Project\Firebird Server\Instances并阅读DefaultInstance值来找到Firebird的安装位置。

以下代码可以解决问题: -

var
  lReg : TRegistry;
  lStr : String;
begin
  lReg := TRegistry.Create;
  Try
    lReg.RootKey := HKEY_LOCAL_MACHINE;
    If lReg.OpenKey('Software\Firebird Project\Firebird Server\Instances', False) Then
      lStr := lReg.ReadString('DefaultInstance');
    lReg.CloseKey;
    ShowMessage(lStr);
  Finally
    FreeAndNil(lReg);
  End;