INNOSETUP: referencia a un archivo de [código] antes de que comience la instalación
-
14-11-2019 - |
Pregunta
Esto es una especie de continuación de esta pregunta .Tengo un archivo que quiero incluir con mi paquete de instalación (un archivo de ayuda .CHM) que debo acceder durante la instalación desde el código.No es necesario instalarlo a la máquina del usuario.Así que quiero que
- Incluya el archivo en el paquete de instalación, probablemente sin comprimir (así que supongo que lo haré con una bandera de [Files] ... external
).
- Referencia del archivo durante la instalación con código como:
procedure HelpButtonOnClick (Sender: TObject) ;
var
ErrorCode : Integer ;
begin
ShellExecAsOriginalUser ('open', ExpandConstant ('{???}') + '\MyHelp.chm', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end ;
Entonces, ¿puedo hacer referencia al archivo antes de que comience la instalación - i.e. Antes de que se copien los archivos en la máquina de usuario?¿Cómo especifico la ruta ExpandConstant ('{???}')
en el archivo?Tengo un botón de ayuda en la forma del asistente que llama al controlador anterior.
Solución
Esto es fácil.Solo hacer
[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;