INNO - 检查文件安装函数InitializeSetup():Boolean;

时间:2013-12-04 00:13:46

标签: inno-setup pascal

我是Inno的新用户,但想在安装前检查'{pf32} \ Google \ Drive \ googledrivesync.exe'。

但是,代码不像在Check:for a file中那样选择{pf32}。 新的一些可以帮助你 迈克尔

[Code]
function InitializeSetup(): Boolean;
var  FilePath3, FP1: String;
begin
//Result := FileExists(FilePath3);
//FP1:= {pf32}    FilePath3:= '\Google\Drive\googledrivesync.exe'
if not FileExists({pf32} + FilePath3) Then
     begin                MsgBox({pf32} + FilePath3 + 'Google Drive not installed    correctly - Setup will now exit -                                        Please reinstall Google Drive!',       mbError, MB_OK);
  abort;
  end;
end; 

2 个答案:

答案 0 :(得分:2)

你必须使用ExpandConstant才能......嗯...扩展常量。 : - )

function InitializeSetup(): Boolean;
var  
  FilePath3: String;
  PFDir: string;
begin
  PFDir := ExpandConstant('{pf32}');
  FilePath3:= '\Google\Drive\googledrivesync.exe'
  Result := FileExists(PFDir + FilePath3);
  if not Result then
  begin                
    MsgBox(PFDir + FilePath3 + #13#13 + 
        'Google Drive not installed' +
        'correctly - Setup will now exit.'#13 +
        'Please reinstall Google Drive!',       mbError, MB_OK);
    Abort;
  end;
end; 

注意:如果ExpandConstant包含尾部反斜杠,我不记得副手,所以你必须进行测试。如果是这样,您需要删除以FilePath3开头的反斜杠。

答案 1 :(得分:0)

上述代码的相关问题。

是否有方法在[Files]或[Icons]部分使用var“PFDir”?