Inno设置 - 检查{pf}中是否存在文件

时间:2016-06-06 07:46:37

标签: inno-setup

我想在Inno设置配方中添加先决条件检查,以检查C:\Program Files (x86)\XYZ文件夹下是否存在文件。

显然,调用{pf}时不会设置InitializeSetup等常量。

进行此类验证的正确方法是什么?

[Code]

function HasRequirements(): boolean;
begin
  result := FileExists('{pf}\XYZ\file.exe')
end;

function InitializeSetup(): Boolean;
begin
    MsgBox('{pf}', mbInformation, MB_OK);
    if not HasRequirements() then begin
        MsgBox('Please install XYZ first.', mbInformation, MB_OK);
        result := false;
    end else
        result := true;
end;

1 个答案:

答案 0 :(得分:1)

您需要使用ExpandConstant函数手动展开字符串中的常量:

function HasRequirements(): boolean;
begin
  result := FileExists(ExpandConstant('{pf}\XYZ\file.exe'))
end;

function InitializeSetup(): Boolean;
begin
    MsgBox(ExpandConstant('{pf}'), mbInformation, MB_OK);
    if not HasRequirements() then begin
        MsgBox('Please install XYZ first.', mbInformation, MB_OK);
        result := false;
    end else
        result := true;
end;