Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup плюс внешние упаковщики

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Открыть новую тему     Написать ответ в эту тему

msatmb



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При создании больших инсталяций в InnoSetup можно значительно уменьшить их размер, воспользовавшись более мощной упаковкой, чем встроенная. Особенностям применения внешних упаковщиков с InnoSetup посвящена данная тема
 
Варианты выбора:
 
RAR: упаковка в общем хуже чем встроенная, но есть куча доп. алгоритмов (тексты, мультимедиа), поэтому может давать выигрыш на некоторых типах данных. Распаковка: только через SFX
 
7-zip: тот же алгоритм упаковки, что и встроенный (lzma), но за счёт доп. алгоритмов bcj2, delta, lzma2, ppmd и большего словаря может обеспечить лучшее сжатие. Для наилучшего сжатия рекомендуется: 64-битная еерсия, 6гб ОЗУ, Ultra7z Optimizer. Распаковка: через SFX или dll от Expeditor
Модуль распаковки архивов 7z 1.01 [18.12.2008] от ExpeditorR
 
FreeArc: тот же базовый алгоритм упаковки (lzma), но наличие множества доп. алгоритмов может обеспечить большее сжатие. Распаковка: через SFX или dll
Модуль распаковки архивов FreeArc [10.07.2009] от Bulat_Ziganshin
 
NanoZip: наилучшее сжатие в редиме -cc (распаковка 1mb/s), оптимальный режим -cO (распаковка 5mb/s). Распаковка: только через SFX
 


Все остальное в родственных темах
 
Inno Setup (создание инсталяционных пакетов)
 
Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия - обсуждение того, какими утилитами/способами лучше сжимать, чтобы получить как можно меньший размер инсталятора.
 
FreeArc - бесплатный open-source архиватор для Windows и Linux, сочетающий высокую степень сжатия и большой набор возможностей

Всего записей: 178 | Зарегистр. 15-04-2007 | Отправлено: 08:31 11-11-2009 | Исправлено: juvaforza, 20:49 26-04-2011
GhoSt_1616



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть маленькая фишка, которая чуть-чуть портит общее впечатление от юзания длл - она связана с использованием в скрипте 2 прогрессбаров. Я всё подробно расписал на скринах - посмотри плиз.  
 
P.S. - длл-ка - зверь, мне оч нравится, сегодня её в полной мере опробовал (до этого только Мартин показывал)
 
1 2 3

----------
We Love Trance Music

Всего записей: 230 | Зарегистр. 22-03-2010 | Отправлено: 21:20 13-06-2010 | Исправлено: GhoSt_1616, 21:20 13-06-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GhoSt_1616
так, я не понял конкретно откуда берется первый и второй прогрессбар, да и зачем 2 надо, я ж как раз делал чтобы все на одном было? Первый прогресс видимо показывает распаковку арк-архива скриптом Булата, а второй srep-pcf и т.д. с помощью ISDone? Просто не понимаю при чем тут моя ДЛЛ и первый прогрессбар?) Ты принцип объясни чего там у тебя делается.
З.Ы. поменяй имя окна установщика, а то там у тебя GTA устанавливается)
 
Добавлено:
А на счет наложения.. в моей ProgressCallback функции есть
Код:
  LabelCurrFileName.Caption := 'Распаковывается файл: '+CurrentFile;

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

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 21:58 13-06-2010
GhoSt_1616



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да про наложение я знаю, и название - это так черновик.  
 
Главное это то, что сначала идёт копирование файлов на хард (первый прогрессбар, и я хочу над ним надпись повесить "Подготовка к установке") - прогрессбар работает, потом инсталл начинает использовать библиотеку IsDone - и в этот момент весь прогресс с первого прогрессбара исчезает, а я хочу, чтобы он оставался (как на 2ом скрине хочу чтоб было).
 
Идея заключается в том, чтобы первый прогрессбар остался там, где он есть сейчас, а второй опустить, чобы он был прямо под первым.
 
2 скрин - как пример. Мне скрипт Булата не нужен, я ток твою длл хочу юзать, просто показал, как всё должно быть.
 
P.S. Зелёненькую полосочку сам рисовал в фотошопе, затем отредактировал сам скин - терь эта полосочка используется не текстурированием (как раньше)Ю а скином.

----------
We Love Trance Music

Всего записей: 230 | Зарегистр. 22-03-2010 | Отправлено: 22:14 13-06-2010 | Исправлено: GhoSt_1616, 22:18 13-06-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GhoSt_1616
Чувствую мне твои репаки не будут нравится Зачем на винт то все скидывать? Лишние операции записи-чтения. Лишняя трата времени при установке. Зачем тебе это? Разве с образа не будет нормально распаковываться?
На счет исчезновения первого прогрессбара разве что может повлиять строка   WizardForm.ProgressGauge.Hide;  
в
procedure InitializeWizard();
А так смотри сам, это все скриптовые дела, а я не скриптер. Спроси у K9000 или vint56 в теме о скриптах Inno
 
Добавлено:
Да и скрипта нет, как можно чего-то сделать лишь со слов

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 22:28 13-06-2010
MartinUA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager
не обращай внимания на GhoSt_1616, ты эту ошибку (с прогрессбарами) уже исправил, правда не знаю как ... ттам всё норм ))
 
 
Добавлено:
как видите, при использовании этой .dll с прогрессбарами всё норм (1 прогрессбар - стандартный, 2 прогрессбар - от IsDone) ))
 
Добавлено:
GhoSt_1616
честно говоря ты тупишь, в IsDone действительно так же есть распаковка фриарков с {src}, прислушайся Profrager'a ))
 
 
Добавлено:

Цитата:
Ну и кнопку лишнюю надо будет попробовать убрать)
а что за лишняя кнопка ??

Всего записей: 51 | Зарегистр. 12-01-2010 | Отправлено: 01:56 14-06-2010 | Исправлено: MartinUA, 02:13 14-06-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MartinUA
ну у Гхоста

так и осталась неактивная кнопка "Отмена" когда ISDone врубалась, прям как в моем примере Только я "Отменить распаковку" поверх нее рисовал) А у тебя все норм)

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 09:24 14-06-2010 | Исправлено: Profrager, 09:28 14-06-2010
MartinUA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager
хе-хе, я просто твою копкО отмены нормально настроил и подогнал под инсталл, что б ни чем не отличалось от остальных отмен))
у меня тоже стандартная кнопка отмены неактивная, а эта кнопка отмены от твоего IsDone


код на твою кнопку, подстроенную под себя:

Код:
procedure CurStepChanged(CurStep: TSetupStep);
begin if CurStep = ssPostInstall then begin MyCancelButton:=TButton.Create(WizardForm);
with MyCancelButton do begin Parent:=WizardForm; Caption:='Отмена';
 Width:=ScaleX(80);
 Height:=ScaleY(24);
 Left:= ScaleX(705);
 Top:= ScaleY(505);
 Font.Style:= [fsbold];
 Font.Size:= 9;
 Font.Name:='Comic Sans MS';
OnClick:=@CancelButtonOnClick; end; callback:=WrapMyCallback(@ProgressCallback,2); Cancel:=0; OveralPct:=0;
 

Всего записей: 51 | Зарегистр. 12-01-2010 | Отправлено: 14:48 14-06-2010 | Исправлено: MartinUA, 14:50 14-06-2010
GhoSt_1616



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager, спасибо за советы, пойду пробовать. А насчёт того, что архивы сначала копируются на веник - у меня привод медленно игрушку с диска устанавливает - быстрее скопировать на хард - распаковать, а всё ненужное походу установки удалять. (Дело говорю - диски (матушка ими торгует) с фирмы в паках (такие картонные красивые коробочки по 9мм) идут с точно такой же системой. Думаю если бы это было тупо - не делала бы фирма так (она хорошая, на 200 штук бывает только 1-2 брака.))  
 
MartinUA, ты не понял - я юзаю длл Profrager от нчала до конца и не использую скрипта Булата - я его вырезал (по твоему же совету, блин!!!). Это просто картинка была такая для примера. А c отменой я уже разобрался сам. Я просто попросил помочь мне с исчезновением первого прогрессбара. Ыыыыы .
 
P.S. GhoSt читается как [host] - в переводе призрак.
 


----------
We Love Trance Music

Всего записей: 230 | Зарегистр. 22-03-2010 | Отправлено: 17:54 14-06-2010 | Исправлено: GhoSt_1616, 17:58 14-06-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GhoSt_1616

Цитата:
 А насчёт того, что архивы сначала копируются на веник - у меня привод медленно игрушку с диска устанавливает - быстрее скопировать на хард - распаковать, а всё ненужное походу установки удалять. (Дело говорю - диски (матушка ими торгует) с фирмы в паках (такие картонные красивые коробочки по 9мм) идут с точно такой же системой. Думаю если бы это было тупо - не делала бы фирма так (она хорошая, на 200 штук бывает только 1-2 брака.))  

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

Цитата:
P.S. GhoSt читается как [host] - в переводе призрак.

Ну вообще-то это читается примерно как "гоуст", хотел в прошлом посте написать "Гост", но это как-то напомнило бы советские времена с ГОСТами), поэтому гхост вышло читабельнее. Лень было раскладку менять

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 22:57 14-06-2010
EmZADE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager
С видимостью кнопки "отмена" всё просто, на самом деле её нужно скрывать if CurStep = ssPostInstall then Так что в следующей версии длл можешь смело исправить прилагаемый к ней пример.  
Примерно так:

Код:
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then
   begin
    WizardForm.CancelButton.Visible:=false;
    MyCancelButton:=TButton.Create(WizardForm);
    with MyCancelButton do
     begin
       Parent:=WizardForm;
       Width:=ScaleX(135);
       Caption:='Отменить распаковку';
       Left:=ScaleX(360);
       Top:=WizardForm.cancelbutton.top;
       OnClick:=@CancelButtonOnClick;
     end;

Ну, а в конце можно и обратно показать, если надо.
Кстати добавь кнопке MyCancelButton ScaleX, а то при увеличенных шрифтах в системе уезжать будет, тут на это кто-то вроде уже жаловался. Вобщем что нужно подправить я выделил жирным.
 
GhoSt_1616
Детский сад - штаны на лямках! Учи мат часть. Не дай бог нарваться на твои репаки.
 
добавлено:
И ещё у меня вопрос, что означает аргумент OveralPct в функциях распаковки? а то просто в коде создаётся переменная OveralPct со значением 0, и передаётся в функцию распаковки, но дело в том что эта переменная больше нигде не используется и значение не меняется, так может лучше сразу в функцию передавать 0, и не создавать лишнюю переменную раз по факту она не испоьзуется?

Всего записей: 12 | Зарегистр. 01-06-2010 | Отправлено: 08:49 15-06-2010 | Исправлено: EmZADE, 09:46 15-06-2010
Alexander64217



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди не подскажете как реализовать распаковку winrar архивов?

Всего записей: 48 | Зарегистр. 15-04-2010 | Отправлено: 09:45 15-06-2010
ExpeditorR

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хорошая dll, молодец! Возьму на вооружение если не против
Если надумаешь добавлять распаковку Rar архивов, то обрати внимание на компоненты для Delphi
TDFUnRar и RARComponent v2.0
TDFUnRar - не дружит с путями содержащими русские буквы, так что придётся править исходники, и плюс он древний.
RARComponent - намного мощней и свежей.
Оба компонента юзают unrar.dll, но это не беда ибо засунешь если что в ресурсы.
Вот ссылки: TDFUnRar
Ссылка на сайт: RARComponent
Там на сайте есть ещё компонент для распаковки Ace архивов.
Я бы и сам сделал, но времени совсем нет, а ты я смотрю оперативно всё делаешь!  
Удачи!

Всего записей: 574 | Зарегистр. 30-05-2008 | Отправлено: 10:05 15-06-2010 | Исправлено: ExpeditorR, 10:06 15-06-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ExpeditorR

Цитата:
Если надумаешь добавлять распаковку Rar архивов, то обрати внимание на компоненты для Delphi  
TDFUnRar и RARComponent v2.0

Спасибо за подсказки, но я уже реализовал Рар) Сейчас придумываю с компонентами Inno чего-то до выпуска 0.4 версии) Не хочу я компоненты использовать) Они очень много добавляют лишнего в код. А с unrar.dll все просто было сделать вручную, благо в инете инфы предостаточно) А unrar.dll засовывать в ISDone.dll не хочу, не очень нужный компонент, поэтому оставлю отдельно.

Цитата:
Я бы и сам сделал, но времени совсем нет, а ты я смотрю оперативно всё делаешь!

ну дык у меня сейчас отпуск, делать нечего) Вот и маюсь)
 
Добавлено:
EmZADE

Цитата:
С видимостью кнопки "отмена" всё просто, на самом деле её нужно скрывать if CurStep = ssPostInstall then Так что в следующей версии длл можешь смело исправить прилагаемый к ней пример.  
Примерно так:

Спасибо, я уже все подправил) Еще сделал установку в момент ssInstall.
Цитата:
Ну, а в конце можно и обратно показать, если надо.  
Кстати добавь кнопке MyCancelButton ScaleX, а то при увеличенных шрифтах в системе уезжать будет, тут на это кто-то вроде уже жаловался. Вобщем что нужно подправить я выделил жирным.

ммм, спасибо, подправлю этот момент

Цитата:
И ещё у меня вопрос, что означает аргумент OveralPct в функциях распаковки? а то просто в коде создаётся переменная OveralPct со значением 0, и передаётся в функцию распаковки, но дело в том что эта переменная больше нигде не используется и значение не меняется, так может лучше сразу в функцию передавать 0, и не создавать лишнюю переменную раз по факту она не испоьзуется?

хех) эта переменная как раз таки и меняется всеми функциями) В ней заложено текущее положение прогрессбара. Можно было бы все это внутри dll сделать, но у меня мысль была о возможности использовать несколько прогрессов, соответственно с разными переменными, но пока не доделал это) Да и кажется не особо нужно)
 
Добавлено:
Alexander64217
в версии 0.4 ISDone будет поддержка .rar архивов, включая multi-volume (правда, с ограничением: ВСЕ тома должны находится рядом с первым)

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 10:24 15-06-2010 | Исправлено: Profrager, 10:49 15-06-2010
TechneS



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Profrager
Ты планируешь добавлять деление на диски? и если до то скора?

Всего записей: 44 | Зарегистр. 18-04-2010 | Отправлено: 11:31 15-06-2010
1ne2wo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ты планируешь добавлять деление на диски? и если до то скора?

Плюсую вопрос о компонентах

Всего записей: 133 | Зарегистр. 10-09-2009 | Отправлено: 11:42 15-06-2010
msatmb



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TechneS
Думаю это должно делаться средствами Inno, а не как dll-кой что Profrager делает.

Всего записей: 178 | Зарегистр. 15-04-2007 | Отправлено: 11:43 15-06-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TechneS, 1ne2wo, msatmb для упрощения скрипта и совместимости с другими функциями (чтобы время расчета records.inf не шло во время перестановки дисков) добавлю в dll запрос на следующий диск, так же в данный момент думаю как все с компонентами реализовать, чтобы потом при автомате и ручной подстановке % все корректно работало.

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 11:51 15-06-2010
TechneS



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Profrager
И когда ожидать такое чудо???)

Всего записей: 44 | Зарегистр. 18-04-2010 | Отправлено: 12:40 15-06-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TechneS
Когда уж сделаю. Чувствую компонентами будет гемор еще тот, и потом вопросов по их использованию еще больше..) На счет смены дисков - если с компонентами не долго провожусь, то и их в 0.4 включу, иначе на следующий раз.

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 12:56 15-06-2010
msatmb



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А что, не прокатывает тот пример что кто-то давал на страницах выше? мол если выбран компонент, то распаковывай.?

Всего записей: 178 | Зарегистр. 15-04-2007 | Отправлено: 13:10 15-06-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup плюс внешние упаковщики


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru