Inno Setup RegKey在64位系统上出现

时间:2010-12-13 14:02:06

标签: registry inno-setup

我使用Inno Setup创建了一个设置,并希望使用Pascal脚本查询注册表

 if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\\Installer\UpgradeCodes\342603A924F08FA4B95B5C283FC13D13') then

我的设置为32位(我想安装的软件也是如此),但在64位系统上,查询被重定向到HKCR\Wow6432Node\\Installer\UpgradeCodes

当然,找不到钥匙,即使它在那里。即使我的设置仍为32位,如何检测密钥?

1 个答案:

答案 0 :(得分:25)

我明白了。您可以在脚本中创建这样的辅助函数:

function GetHKLM: Integer;
begin
  if IsWin64 then
    Result := HKLM64
  else
    Result := HKLM32;
end;

然后你就像使用它一样:

RegQueryStringValue(
  GetHKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'XYZ', Variable);