我想在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;
答案 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;