function ExtractTemporaryFiles(const Pattern: String): Integer;
Извлекает файлы, согласно указанной маске Pattern, из секции [Files] во временный каталог. Возвращает количество извлечённых файлов. Для определения расположения временного каталога используйте ExpandConstant('{tmp}').
При закрытии программы установки все извлечённые файлы автоматически удаляются.
Если файлы не извлечены, не найдены или найдены, но не были обработаны из-за наличия параметров MinVersion и/или OnlyBelowVersion, будет вызвано исключение.
Используйте Flags: dontcopy в секции [Files], чтобы указать программе установки пропустить данный файл на этапе копирования файлов.
Если включено непрерывное (solid) сжатие, обязательно перечислите все временные файлы в самом начале секции [Files]. Причиной этого является то, что для получения доступа к произвольному файлу в архиве с непрерывным сжатием, программа установки должна сначала распаковать все предыдущие файлы (во временный буфер в памяти). Это может привести к значительной задержке в работе инсталлятора, если в секции [Files] перед временно используемыми файлами находится множество других файлов.
[Files] Source: "Readme.txt"; Flags: dontcopy Source: "MyProg.exe"; DestDir: "{app}" Source: "MyProg.chm"; DestDir: "{app}" [Code] function InitializeSetup: Boolean; var S: AnsiString; ResultCode: Integer; begin // Показываем содержимое Readme.txt (не Unicode) в сообщении ExtractTemporaryFiles('{tmp}\Readme.txt'); if LoadStringFromFile(ExpandConstant('{tmp}\Readme.txt'), S) then begin MsgBox(S, mbInformation, MB_OK); end; // Извлекаем все файлы MyProg и запускаем её. // Заметьте, константа {app} не расширяется. ExtractTemporaryFiles('{app}\MyProg.*'); ExecAsOriginalUser(ExpandConstant('{tmp}\')+'{app}\MyProg.exe', '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode); Result := True; end;