windows - 如何在delphi中查找是否安装了firebird以及在哪里安装

标签 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”,但这不是简单的方法。问题可能不在于 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/

相关文章:

java - 如何在 Windows 8 中安装 calabash for android?

windows - Windows 上的 Git 用户名和电子邮件不正确

.net - 导致 .net WCF 客户端使用 RPC/encoded 而不是 Document/Literal/Wrapped with Delphi 服务

search - Solr 中的通配符搜索

在 Cassandra 的列表中搜索多个元素

javascript - 使用 complexQuery 的 Dojo DataGrid 过滤不起作用

c - 当 SQLDescribeCol 返回 -8 时,它意味着什么类型?

windows - 什么 SCM 在 Windows 和 Linux 下支持符号链接(symbolic link)?

delphi - 有没有人为 Intraweb 编写过 session 监视器?

arrays - Delphi过程数组参数混淆