Inno Setup:如果程序文件夹中存在文件,则关闭安装程序向导

Inno Setup: Close installer wizard if file exists in the program's folder

我正在尝试创建一个演示安装程序,如果它在程序文件夹中检测到文件 close.txt,则会关闭向导或中止安装。

我正在 运行 执行计划任务,该任务会在两天后自动卸载该应用程序。在初始安装时,close.txt 文件安装在程序文件夹中,然后在自动卸载后,close.txt 文件留在程序文件夹中。我希望当您重新 运行 安装程序时,它会检查此文件,如果发现它,则关闭向导或中止安装。我是新手,我认为可以在代码部分完成,但我不确定。

如有任何帮助或代码片段,我们将不胜感激!

测试 InitializeSetup event function 和 return 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;

注意,如果安装程序允许自定义安装路径,卸载后重新运行安装时,您是不会知道的。所以这行不通。