Inno Setup RegKeyExists на 64-битных системах - PullRequest
9 голосов
/ 13 декабря 2010

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

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

Моя установка 32-битная (как и мое программное обеспечение, которое я хочу установить), но на 64-битных системах запросперенаправляется на HKCR\Wow6432Node\\Installer\UpgradeCodes

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

1 Ответ

25 голосов
/ 13 декабря 2010

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

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

Затем вы будете использовать ее, например:

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