В том и дело что я так и не понял что нужно именно прописатьЯ совертовать не буду ну для начало пользуйтесь 7-z или winrar или Arc. Лучше будет из всех 7-z. В справке все есть Inno setup.
И это будет работать у всех юзеров без всяких программ?#define PackZIP - нужно открыть
if not IS7ZipExtract ( 0, 0, ExpandConstant('{src}\data.7z'), ExpandConstant('{app}\'), false, '') then break; data7z- это ваш архив
0 - первый ноль отвечает за тестовой прогон, его можно поставить на 100,если вы не хотите проверить архив на распаковку битый не битый, а второй ноль это отвечает за компонент.
{app}\ - здесь пишется папка куда будет распаковываться файл, false отвечает за удаление в папке tmp файлов, если вы поставите true,то останется tmp.
Всё это есть в справке ISDone.
Ага, а если у конечного пользователя нету 7-Zip?Ну да нужно скачать 7-zip и сжимать ти. Потом просто вставляй сжатый архив возле setup и все дела.
А это к чему и куда?#define PackZIP - нужно открыть
Ты написал только что нужно открыть. Куда открыть, чего открыть. Ничего непонятно...@BergForce, я уже все разжевал.
не умничал бы, а помог лучше, объяснив нормально. Я новичок в этом деле. Походу придётся по старинке Smart Install Maker юзать.Всему в жизни надо учиться, а не лениться, но и не всем дано писать скрипты и прочее. Я выше все четко написал,что нужно для упаковки и распаковки.7-zip архиватор есть в интернете. Скачивай его и упаковывай файлы. Потом этот упакованный файл надо положить возле setup и все дела.
Так ты объясни нормально, какой большой скрипт? Я вставил то что ты дал. Я не разбираюсь в этом...@BergForce, к где сам большойис скрипт isdone, конечно он работать не будет?
#define NeedSize "точный размер в байтах"
#define NeedMem 1024
#define SecondProgressBar
[Setup]
#ifdef NeedSize
ExtraDiskSpaceRequired={#NeedSize}
#endif
[Files]
Source: "Example/Include/7z.dll"; DestDir: {tmp}; MinVersion: 0.0,6.1sp1; Flags: dontcopy
Source: "Example/ISDone.dll"; DestDir: "{tmp}"; MinVersion: 0.0,6.1sp1; Flags: dontcopy
Source: "Example/Data.bin"; DestDir: "{tmp}"; MinVersion: 0.0,6.1sp1; Flags: dontcopy
[Code]
function IS7ZipExtract(CurComponent:Cardinal; PctOfTotal:double; InName, OutPath: AnsiString; DeleteInFile:boolean; Password: AnsiString):boolean; external 'IS7zipExtract@files:ISDone.dll stdcall delayload';
// Распаковка всех необходимых файлов в папку {tmp}
#ifdef PackZIP
Source: Include\7z.dll; DestDir: {tmp}; Flags: dontcopy
#endif
ExtractTemporaryFile('Data.bin');
ISDoneError:=true;
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback) then begin
repeat
if not FileSearchInit(true) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{tmp}\Data.bin'), ExpandConstant('{app}\Artemis\Content\Paks'), false, '') then break;
ISDoneError:=false;
until true;
ISDoneStop;
end;
HideControls;
WizardForm.CancelButton.Visible:=true;
WizardForm.CancelButton.Enabled:=false;
end;
if (CurStep=ssPostInstall) and ISDoneError then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
end;
end;