Inno Setup: закрыть мастер установки, если файл существует в папке программы - PullRequest
1 голос
/ 29 февраля 2020

Я пытаюсь создать установщик, который является демо-установщиком, который, если он обнаруживает файл close.txt в папке программ, закрывает мастер или прерывает установку.

Я запускаю запланированное задание, которое автоматически удаляет приложение через два дня. При первоначальной установке файл close.txt устанавливается в папку программ, а после автоматической деинсталляции файл close.txt остается в папке программ. Я хотел бы, чтобы при повторном запуске установщика он проверял этот файл и обнаружил, что он закрывает мастер или прерывает установку. Я новичок ie в этом, я думаю, что это может быть достигнуто в разделе кода, но я не уверен.

Любая помощь или фрагменты кода будут оценены, спасибо!

1 Ответ

0 голосов
/ 29 февраля 2020

Проверка существования файла в InitializeSetup функция события и возврат False, если он существует.

[Setup]
DefaultDirName={autopf}\My Program
[Code]
function WasMyProgramEverInstalled: Boolean;
begin
  Result := FileExists('{#SetupSetting("DefaultDirName")}\close.txt');
end;

function InitializeSetup: Boolean;
begin
  Result := True;
  if WasMyProgramEverInstalled then
  begin
    MsgBox('Some message', mbError, MB_OK); { Optionally }
    Result := False;
  end;
end;

Обратите внимание, что если установщик разрешить изменение пути установки, вы не узнаете его при повторном запуске установки после удаления. Так что это не сработает.

...