2

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

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

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

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

4

1 回答 1

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;
于 2011-05-16T20:49:02.607 回答