Skip to main content
 首页 » 编程设计

inno-setup中Innosetup返回标志

2025年12月25日153itcoder

我正在编译一个 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') 

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

Parameter "Flags" includes an unknown flag.

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

请您参考如下方法:

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

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

Check: xxxxxxx 

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