ISDone

DLL ISDone 0.6 final

Нет прав для скачивания
Гуру. Помогите на примере оригинального скрипта isdone, убрать прогресс бары, оставить только проценты и время.
Ищи поиском строку "ISDoneCancel:=0;" и после вставляй это:
Код:
    ISDoneProgressBar1.Hide();
    #ifdef SecondProgressBar
      ISDoneProgressBar2.Hide();
    #endif
 
Доброго времени суток, у меня вопрос по коду в inno setup с библиотекой IsDone.
Пишу такой код:
Код:
if not IS7ZipExtract   ( 0, 0, ExpandConstant('{src}\Data\Data.bin'), ExpandConstant('{app}\mods'), false, '') then break;
if not ISPackZIP       ( 0, 0, ExpandConstant('{app}\mods\Mod1\*'), ExpandConstant('{app}\TempArc\001.zip'), 9, true ) then break;
Архив создается, тут все в порядке, но мне нужно сделать так, чтобы созданный архив распаковался в папку {app}\Data
пробовал и IS7ZipExtract включать и ISRarExtract - выдает ошибку открытия и инсталлятор закрывается.
 
if not IS7ZipExtract ( 0, 0, ExpandConstant('{src}\Data.bin'), ExpandConstant('{app}\Data\mods'), false, '') then break;
 
if not IS7ZipExtract ( 0, 0, ExpandConstant('{src}\Data.bin'), ExpandConstant('{app}\Data\mods'), false, '') then break;
Обьясню по другому
В 7-zip архивеData.bin есть 3 папки -mod1, mod2, mod2
Я его распаковываю строкой
Код:
if not IS7ZipExtract   ( 0, 0, ExpandConstant('{src}\Data\Data.bin'), ExpandConstant('{app}\mods'), false, '') then break;
И вот теперь мне содержимое папок
Код:
{app}\mods\mod1
{app}\mods\mod2
{app}\mods\mod3
надо перенести в папку
Код:
{app}\Data
Далее я пишу строки
Код:
if not ISPackZIP       ( 0, 0, ExpandConstant('{app}\mods\Mod1\*'), ExpandConstant('{app}\TempArc\001.zip'), 2, true ) then break;
if not ISPackZIP       ( 0, 0, ExpandConstant('{app}\mods\Mod2\*'), ExpandConstant('{app}\TempArc\002.zip'), 2, true ) then break;
if not ISPackZIP       ( 0, 0, ExpandConstant('{app}\mods\Mod3\*'), ExpandConstant('{app}\TempArc\003.zip'), 2, true ) then break;
Все три архива успешно создаются. Мне нужно чтобы они распаковались в папку {app}\Data
Функции IS7ZipExtract и ISRarExtract не хотят открывать эти архивы.
 
if not IS7ZipExtract ( 0, 0, ExpandConstant('{src}\Data\Data.bin'), ExpandConstant('{app}'), false, '') then break;
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\Data\mod1\*'), ExpandConstant('{app}\Data\001.zip'), 2, True ) then break;
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\Data\mod2\*'), ExpandConstant('{app}\Data\002.zip'), 2, True ) then break;
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\Data\mod3\*'), ExpandConstant('{app}\Data\003.zip'), 2, True ) then break;
 
@vint56,Ладно... Еще раз
Задача такова
Надо из папок "{app}\mods\mod1", "{app}\mods\mod2", "{app}\mods\mod3"и т.д. переместить данные в папку "{app}\Data", при необходимости перезаписывая данные.
пишу такой код
Код:
        if not IS7ZipExtract   ( 0, 0, ExpandConstant('{src}\SKYGS4\Data.bin'), ExpandConstant('{app}\mods'), false, '') then break;
        if not ISPackZIP       ( 0, 0, ExpandConstant('{app}\mods\mod1\*'), ExpandConstant('{app}\TempArc\001.zip'), 2, true ) then break;
        if not IS7ZipExtract   ( 0, 0, ExpandConstant('{app}\TempArc\001.zip'), ExpandConstant('{app}\Data'), true, '') then break;
3-я строка не работает
Меняю в третьей строке IS7ZipExtract на ISRarExtract, все равно не работает.
Я уже и через консоль пробовал перемещение, и библиотеку ISCopyFile - ничто не помогает.
 
@vint56,Ладно... Еще раз

Задача такова

Надо из папок "{app}\mods\mod1", "{app}\mods\mod2", "{app}\mods\mod3"и т.д. переместить данные в папку "{app}\Data", при необходимости перезаписывая данные.

пишу такой код

Код:
        if not IS7ZipExtract ( 0, 0, ExpandConstant('{src}\SKYGS4\Data.bin'), ExpandConstant('{app}\mods'), false, '') then break;

        if not ISPackZIP ( 0, 0, ExpandConstant('{app}\mods\mod1\*'), ExpandConstant('{app}\TempArc\001.zip'), 2, true ) then break;

        if not IS7ZipExtract ( 0, 0, ExpandConstant('{app}\TempArc\001.zip'), ExpandConstant('{app}\Data'), true, '') then break;

3-я строка не работает

Меняю в третьей строке IS7ZipExtract на ISRarExtract, все равно не работает.

Я уже и через консоль пробовал перемещение, и библиотеку ISCopyFile - ничто не помогает.
Whats the reason behind the ISPACKZIP to again compressing the archive.?

You may simply use the SHFileoperation.iss to use the respective CopyDir or MoveDir to do your desire things.

Why main unpack-> zipping-> again unpacking.....?
 
@stas2503,
ISDone не умеет распаковывать ZIP архивы. Это первое.
Второе - зачем такие сложности? Почему нельзя распаковывать сразу в {app}\data?
Ну либо почему нельзя потом переместить нужные файлы с перезаписью?
 
Второе - зачем такие сложности? Почему нельзя распаковывать сразу в {app}\data?
Я делаю установку с 700 модами для игры, которая весит 84 Гб (при этом самый маленький мод 5Кб, самый большой - 10 Гб)
И вот чтобы не удваивать и без того большую установку. Я делаю 2-й инсталлятор
1-й инсталлятор распаковывает все в папку mods - при этом каждый мод в отдельной папке
А вот второй инсталлятор я пытаюсь сделать так, чтобы он хватал ресурсы первого инсталлятора и и помещал каждый из 700 модов в папку Data.
Очевидно, что не хочется иметь 168 Гб данных и 700 разных архивов

UPD: Ммм... Кажется придумал решение.
Попробую создать отдельные инсталляторы на ISCopyFile, затем поместить их в основной инсталлятор. и вызывать их тихий запуск после установки комендной строкой.
По крайней мере у меня так вызывается установщик нужной программы в первом инсталляторе
Протестирую.
 
Последнее редактирование:
Я делаю установку с 700 модами для игры, которая весит 84 Гб (при этом самый маленький мод 5Кб, самый большой - 10 Гб)
И вот чтобы не удваивать и без того большую установку. Я делаю 2-й инсталлятор
1-й инсталлятор распаковывает все в папку mods - при этом каждый мод в отдельной папке
А вот второй инсталлятор я пытаюсь сделать так, чтобы он хватал ресурсы первого инсталлятора и и помещал каждый из 700 модов в папку Data.
Очевидно, что не хочется иметь 168 Гб данных и 700 разных архивов

UPD: Ммм... Кажется придумал решение.
Попробую создать отдельные инсталляторы на ISCopyFile, затем поместить их в основной инсталлятор. и вызывать их тихий запуск после установки комендной строкой.
По крайней мере у меня так вызывается установщик нужной программы в первом инсталляторе
Протестирую.
А что за игра, если не секрет?
 
Как вариант, можно поместить все моды в отдельный архив, добавить в установщик unarc.exe, и извлекать необходимый мод с помощью команды unarc.exe -ap{Path}.
 
В общем спасибо всем за отклик... Нашел решение с помощью запуска командной строки...
Код:
robocopy "mods\[Папка с модом]" Data /E /MOVE
Прописал в батник нужное количество строк с именами папок, а батник указал как приложение, которое должно запуститься после инсталляции.
 
Привет, делаю репаки и встретился с такой проблемой. Самое интересное, что ошибка выскакивает на 99% и игра работает, если через диспетчер снять задачу с инсталлятора. Подскажите пожалуйста, что делать? Спасибо.
 

Вложения

  • 1622021725328.png
    1622021725328.png
    24 KB · Просмотры: 45
У моих пользователей частенько была проблема с распаковкой из-за антивируса. Каким методом вы сжимали?
 
Назад
Сверху