Inno setup - пропустить установку, если другая программа не установлена - PullRequest
1 голос
/ 06 мая 2011

Я должен найти способ пропустить установку, если другая программа не установлена. Я могу обнаружить реестр другой программы (базовый скрипт возвращает true / false), это не проблема. Но я не знаю, как пропустить установку.

Вкратце: если один ключ в реестре не задан, распечатайте сообщение «install program xyz before this» и завершите установку.

1 Ответ

8 голосов
/ 06 мая 2011

Это очень просто. Просто добавьте

[Code]

function IsApp2Installed: boolean;
begin
  result := RegKeyExists(HKEY_LOCAL_MACHINE,
    'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\app2.exe');
end;

function InitializeSetup: boolean;
begin
  result := IsApp2Installed;
  if not result then
    MsgBox('You need to install App2 before you install ThisApp. Install App2 and then run this installer again.', mbError, MB_OK);
end;

в ваш файл ISS. InitializeSetup - это так называемая функция события , которая выполняется при запуске установщика (даже до отображения графического интерфейса мастера). Если вы вернете false, программа установки немедленно завершит работу.

...