Вопрос как распаковать арк архив установленный простым инно сетапом ?

EvilAlex

Старожил
Всем добрового времени суток. возможно уже спрашивал. найти не могу!
как распаковать arc архив установленный простым инно сетапом ?

есть по мимо директ иксов и доп файлов, три arc архива. звуки, музыка. и основной клиент. как мне сделать чтобы можно было выбрать допустим только звук и извлеклись бы два архива. основные (в любом случае) и музыка(или звуки. смотря что выбрано). а потом началась бы их распаковка...

тоесть пользователь выбирает установку всего доп.по, установку звуков, создание ярлыков и тд... и сетап в начале бы просто бы их извлекал в папку. а потом по средствам исдона начинал бы распаковку...
 

Вложения

Последнее редактирование:

dixen18

Ветеран
Небольшой совет - для обозначения архивов используйте пожалуйста латиницу. Например вместо АРК пишите ARC. А то сразу не поймешь что речь вовсе не про андроид приложения.
 

EvilAlex

Старожил
я и исдоном могу. мне нужно чтобы сетап по выбору, кроме основных файлов(они в любом бы случае извлекались), извлекал тот архив который выбран. то-есть выбрали музыку. сетап в папку извлек музыку и потом бы начал ее распаковку, или звук...

то-есть еще раз. лежат в папке 3 архива. основные файлы. музыка. звук, и папка с доп.по... основные и музыка со звуками упаковано FreeArc'ом...
после чего компилишь сетап с этими файлами одним ЕХЕ файлом...
пользователь запускает сетап, и видит там галочки, музыка, звук. директ икс. визуал+. нетфраймворк. ну и ярлыки... выбирает звук. и все доп.по...
сетап сначала извлекает во временную папку архивы с основными файлами, если выбран звук. то со звуком. и папку с доп.по. после чего начинает установку из архивов. и доп.по...

при этом надо показать как то что он извлекает временные файлы. чтоб пользователь не думал что сетап повис...


просто если упаковывать фулл клиент. то сетап получается 1,2гб примеро. и очень долго запускается... а если делать через исдон. то получится два файла. сетап и архив. после чего их надо будет опят ьв архив. чтоб скачивать 1 файлом, а потом распаковать. установить. это место и время и лишние действия... подумал что можно это все сделать в сетапе. он получается 950мб-1гб, при этом запускается быстро.
 

ZVSRus

Участник
EvilAlex Если правильно понял, Вам нужно во время распаковки архивов во временную папку показывать какое то окно (если долго распаковываются, и конечный пользовавтель не думал что сетапник завис). Если так то такая фишка есть
 

EvilAlex

Старожил
EvilAlex Если правильно понял, Вам нужно во время распаковки архивов во временную папку показывать какое то окно (если долго распаковываются, и конечный пользовавтель не думал что сетапник завис). Если так то такая фишка есть
сейчас пробую ISFreeArcExtract. но чтото пока ни как...
основная проблема в том что я **пой =)) мне надо чтобы сетап извлекал во временную папку архивы. а потом их распаковывал. но не все подряд, а те которые выбраны в компонентах...

есть 3 архива: main.arc (основные файлы) sound.arc (звуки) music.arc (музыка)
клиент может работать и без последних двух. поэтому я и хочу сделать выбор. устанавливать их или нет...
 

EvilAlex

Старожил
Вот что у меня получилось в итоге...) теперь надо как-то изменить страницу компонентов.

я таки победил, оно таки начало по выбору распаковывать через исдон...
 

Вложения

Последнее редактирование:

vint56

Ветеран
Проверенный
[Components]
Name: voice; Description: Дополнительные задачи;
Name: voice\music; Description: Установить Музыку;
Name: voice\sound; Description: Установить Звуки;


// Подготавливаем переменную, содержащую всю информацию о выделенных компонентах для ISDone.dll
// максимум 96 компонентов.
Comps1:=0; Comps2:=0; Comps3:=0;
#ifdef Components
TmpValue:=1;
if IsComponentSelected('voice\music') then Comps1:=Comps1+TmpValue; //компонент 1
TmpValue:=TmpValue*2;
if IsComponentSelected('voice\sound') then Comps1:=Comps1+TmpValue; //компонент 2
// .....
// см. справку
#endif

if not ISArcExtract ( 0, 0, ExpandConstant('{src}\main.arc'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 1, 0, ExpandConstant('{src}\music.arc'), ExpandConstant('{app}\Data'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISArcExtract ( 2, 0, ExpandConstant('{src}\sound.arc'), ExpandConstant('{app}\Data'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;

// Распаковка всех необходимых файлов в папку {tmp}. Удалить за чем можно сразу возле setup
ExtractTemporaryFile('main.bin');
ExtractTemporaryFile('music.bin');
ExtractTemporaryFile('sound.bin');


кое что добавил
 

Вложения

Последнее редактирование:

Crachlow

Старожил
Можно сделать так: создать архив . arc с доп. элементами, структурой sound(папка) и music(папка), добавить в инсталлятор unarc.exe и извлекать в бедующем
if not ISExec ( 1, 0, 0, ExpandConstant('{tmp}\unarc.exe'), ExpandConstant('x -o+ -apsound "{src}\options.arc" -dp"{app}\data"'), ExpandConstant('{tmp}'), 'Установка что нужно...',false) then break;
if not ISExec ( 2, 0, 0, ExpandConstant('{tmp}\unarc.exe'), ExpandConstant('x -o+ -apmusic"{src}\options.arc" -dp"{app}\data"'), ExpandConstant('{tmp}'), 'Установка что нужно...',false) then break;
 
Сверху