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 に答える