问题:我需要修改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。
答案 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;