Kaz*_*rus 2 windows delphi registry search path
问题:我需要在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。简短地说:我
您可以通过检查注册表项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;
Run Code Online (Sandbox Code Playgroud)