Innosetup返回标志

时间:2018-10-13 22:32:55

标签: inno-setup pascalscript

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

我正在尝试通过[Code]部分来实现这一目标。但是,我无法弄清楚如何在我的[Run]部分的标志中调用该函数。

在我的代码部分中,我具有以下功能,用于检查目录是否存在,如果不存在,则尝试将标志设置为未经检查(如果目录确实存在),我只返回任何标志。

[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:\3S\LegacyAppFolder\Update.exe; Description: Blah Blah Blah; \
    Flags: VerifyDir('C:\3S\LegacyAppFolder')

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

  

参数“标志”包含未知标志。

我认为这是因为要么我没有内联函数,而我需要以不同的方式进行处理,要么这根本不可能。

1 个答案:

答案 0 :(得分:2)

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

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

Check: xxxxxxx

如果check函数返回true,则处理该语句。