Innosetup return 标志

Innosetup return flag

我正在编译 Inno Setup 项目。我想做的是检查文件夹是否存在,如果文件夹不存在,那么我想取消选中 [run] 部分中的复选框。

我试图通过 [Code] 部分来完成此操作。但是,我不知道如何在 [Run] 部分的标志中调用该函数。

在我的代码部分,我有以下函数来检查目录是否存在,如果不存在,我会尝试将标志设置为未选中,如果目录确实存在,我只是 return任何标志。

[Code]
function VerifyDir(DirName: String): Flag;
begin
  {Check if directory exists, if it does then set the check flag to unchecked}
  if not DirExists(DirName) then
    Result := unchecked
  end;  
  {Directory Exists return a flag}
  Result := nowait
end;

然后在我的 [Run] 部分,我尝试从函数传回标志,如下所示:

[Run]
Filename: C:S\LegacyAppFolder\Update.exe; Description: Blah Blah Blah; \
    Flags: VerifyDir('C:S\LegacyAppFolder')

但是,当我尝试编译安装程序时出现错误

Parameter "Flags" includes an unknown flag.

我认为这是因为要么我没有内联函数,我需要以不同的方式解决这个问题,要么这根本不可能。

您不想使用 flags 部分进行测试。

如果您查看 here,您会发现正确的做法是使用:

Check: xxxxxxx

如果检查函数 returns 为真,则处理该语句。