Innosetup - 在安装开始之前从[Code]引用文件

时间:2011-05-16 19:55:08

标签: installer inno-setup helpfile context-sensitive-help

这是this question的延续。我有一个文件,我想要包含我的安装包(.CHM帮助文件),我需要在安装过程中从代码访问。它不需要安装到用户的机器上。所以我想要 - 将文件包含在安装包中,可能是未压缩的(因此我想我会使用[Files] ... external标志执行此操作)。
- 在安装过程中使用以下代码引用文件:

procedure HelpButtonOnClick (Sender: TObject) ;   
var
    ErrorCode : Integer ;

begin
ShellExecAsOriginalUser ('open', ExpandConstant ('{???}') +  '\MyHelp.chm', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end ;

在安装开始之前,即在将任何文件复制到用户计算机之前,我可以引用该文件吗?如何为文件指定路径ExpandConstant ('{???}')?我在向导表单上有一个帮助按钮,可以调用上面的处理程序。

1 个答案:

答案 0 :(得分:6)

这很容易。只是做

[Files]
Source: "MyHelp.chm"; Flags: dontcopy

[Code]

procedure HelpButtonOnClick(Sender: TObject);
var
  ErrorCode: integer;
begin
  ExtractTemporaryFile('MyHelp.chm');
  ShellExecAsOriginalUser('', ExpandConstant('{tmp}\MyHelp.chm'), '', '',
    SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;