从注册表中读取使用Inno Setup的应用程序实例和版本列表?



我正忙着为Inno Setup编写更新安装程序,其中我提示用户当前安装的应用程序的版本以及将使用安装程序安装的应用程序的当前版本。为了获得将要安装的应用程序版本,我使用Inno Setup预处理器指令:

#define MyAppVersion GetVersionNumbersString('{#MyAppExeName}')`
[Setup]
AppVersion={#MyAppVersion}
AppVerName={#MyAppName}{#MyAppVersion}

我正在努力的部分是得到我的应用程序安装在myApps下的所有版本的列表。我正在考虑使用HKEY_LOCAL_MACHINE,'SoftwareMicrosoftWindowsCurrentVersionUninstall{}与一些通配符,只给我的应用程序的名称和版本。还要注意的是,我有不同的应用程序的不同版本。仍然手动做我的版本安装程序,但将在不久的将来自动化。

使用RegGetSubkeyNames枚举键。

var
I: Integer;
Names: TArrayOfString;
AppId: string;
begin
if RegGetSubkeyNames(
HKLM, 'SoftwareMicrosoftWindowsCurrentVersionUninstall', Names) then
begin
for I := 0 to GetArrayLength(Names) - 1 do
begin
if Copy(Names[I], Length(Names[I]) - 3, 4) = '_is1' then
begin
AppId := Copy(Names[I], 1, Length(Names[I]) - 4);
{ ... }
end;
end;
end;
Result := True;
end;

相关内容

  • 没有找到相关文章

最新更新