问题:我需要修改 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”,但这不是简单的方法。问题可能不在于 Lazarus 的注册表功能,但我不知道。因此,可能有人知道如何检查 firebird 是否安装以及安装在何处。简而言之:我将使用数据库文件安装我的应用程序,并且必须默默地修改aliases.conf。
最佳答案
您可以通过检查注册表项 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;
关于windows - 如何在delphi中查找是否安装了firebird以及在哪里安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24699251/