Inno Setup RegKeyExists на 64-битных системах

Я создал настройку с помощью Inno Setup и хотел запросить реестр с помощью скрипта Pascal

 if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWAREClassesInstallerUpgradeCodes2603A924F08FA4B95B5C283FC13D13') then

моя настройка 32bit (как и мое программное обеспечение, которое я хочу установить), но на 64bit системах запрос перенаправляется на HKCRWow6432NodeInstallerUpgradeCodes

конечно, ключ не найден, хотя он есть. Как я могу обнаружить ключ, даже если моя настройка остается 32bit?

1 ответов


Я понял. Вы можете сделать такую вспомогательную функцию в своем скрипте:

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

затем вы используете его, как например:

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