Innosetup - fazer referência a um arquivo a partir de [Código] antes de inicia a instalação
-
14-11-2019 - |
Pergunta
Esta é uma espécie de continuação de esta pergunta.Eu tenho um arquivo que eu quero incluir na minha pacote de instalação (uma .Ajuda CHM de arquivo) que eu preciso de acesso durante a instalação a partir do código.Ele não precisa ser instalado na máquina do usuário.Então, eu quero
- incluir o arquivo no pacote de instalação, provavelmente não compactada (então eu acho que vou fazer isso com um [Files] ... external
bandeira).
- referência do arquivo durante a instalação com o código como:
procedure HelpButtonOnClick (Sender: TObject) ;
var
ErrorCode : Integer ;
begin
ShellExecAsOriginalUser ('open', ExpandConstant ('{???}') + '\MyHelp.chm', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end ;
Então, posso fazer referência o arquivo antes do início da instalação - i.e.antes de todos os arquivos são copiados para a máquina do usuário?Como faço para especificar o caminho ExpandConstant ('{???}')
para o arquivo?Eu tenho um botão de ajuda no assistente de formulário que chama acima de manipulador.
Solução
Isso é fácil.Basta fazer
[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;