Innosetup — укажите файл из [Код] перед началом установки.
-
14-11-2019 - |
Вопрос
Это своего рода продолжение этот вопрос.У меня есть файл, который я хочу включить в свой установочный пакет (файл справки .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;
Не связан с StackOverflow