InnoSetup 如何知道注册密钥是否存在

问题描述 投票:0回答:1

在innosetup中使用以下函数定位到注册SketchUp 在我的机器中我安装了 SketchUp 2024 在注册表中有默认键 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\SketchUp\SketchUp 2024\InstallLocation

但是 SketchUpPath 没有返回任何内容 我做错了什么?

function IsSketchUpInstalled: Boolean;
var
  SketchUpPath: string;
  Year: Integer;
begin
  Result := False;
  for Year := 2010 to 2030 do
  begin
    if RegQueryStringValue(HKLM, 'SOFTWARE\SketchUp\SketchUp '+IntToStr(Year)+'\InstallLocation', '', SketchUpPath) then    
    begin
      Result := True;
      Break;
    end;
  end;
end;
pascalscript inno-setup-v6
1个回答
0
投票

好的,我找到了解决方案

我使用 HKLM64 而不是 HKLM,所以函数变成这样并且工作得很好。

function IsSketchUpInstalled: Boolean;
var
  SketchUpPath: string;
  Year: Integer;
begin
  Result := False;
  for Year := 2010 to 2030 do
  begin
    if RegQueryStringValue(HKLM64, 'SOFTWARE\SketchUp\SketchUp '+IntToStr(Year)+'\InstallLocation', '', SketchUpPath) then    
    begin
      Result := True;
      Break;
    end;
  end;
end;
© www.soinside.com 2019 - 2024. All rights reserved.