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

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

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

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

有帮助吗?

解决方案

这很容易。只要做

[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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top