gpt4 book ai didi

mysql - 在注册表中找到 MySQL 的通用路径,因为它在注册表中创建特定于版本的条目作为键

转载 作者:行者123 更新时间:2023-11-29 02:55:37 24 4
gpt4 key购买 nike

每次通过 inno setup 开始安装应用程序时,我都需要检查 sql server 版本。 但是由于 sql 创建了特定于服务器版本的条目(如 MySQL Server 5.1)作为注册表中的键,所以我必须提供像

这样的路径

HKLM\SOFTWARE\Wow6432Node\MySQL AB\MySQL Server 5.1

同时检查版本。
但是当我安装非 5.1 版本的 sql server 时,它检查上面的路径,它找不到。因此,尽管已经安装,但再次开始安装。所以我想要一些通用的路径,比如

HKLM\SOFTWARE\Wow6432Node\MySQL AB\MySQL Server

这不是特定于版本的。这样我就可以轻松地从 MySQL 键中检索值并检查它。我的代码是

function fCheckMySQLInstall():boolean;
var
mysqlVersion : string;
begin
bIsMyQLInstalled := False;
if RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\MySQL AB\MySQL Server 5.1', 'Version', mysqlVersion) = true then
if CompareStr(mysqlVersion,'5.1') >= 0 then
bIsMyQLInstalled := True;

Result := bIsMyQLInstalled;
end;

因为路径是/MySQL Server 5.1,这是不正确的。应该对所有版本都是通用的,以便我可以检查其他版本。欢迎提供解决方案。

最佳答案

所以基本上您必须使用 RegEnumKey(ex) 枚举“SOFTWARE\Wow6432Node\MySQL AB\”下的键并自己匹配“MySQL Server Vx.y”,并从中确定最高版本。

Delphi/FreePascal 注册表单元以这种方式提供枚举键的功能,在 Inno Setup 中您可以使用 RegGetSubkeyNames的功能。

关于mysql - 在注册表中找到 MySQL 的通用路径,因为它在注册表中创建特定于版本的条目作为键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30936037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com