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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Bulat_Ziganshin

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager
ну ты реальный монстрило....
 
Добавлено:
Profrager

Цитата:
Делал для себя, но вот решил выложить чуть измененный unarc.dll версии 0,666 для InnoSetup, который ищет файлик arc.ini не в "C:\", а в папке винды.  

имхо этот файл должен кидаться в папку куда идёт установка. не все имеют право писать в c:\windows. сделать это можно и с моей dll с параметром -cfg. или ещё лучше рапсаковывать его прям рядом с dll, а в самой dll сделать определение того из какого каталога она загружена и читать arc.ini по умолчанию из него же

Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 18:48 31-05-2010
Profrager



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

Цитата:
 
имхо этот файл должен кидаться в папку куда идёт установка. не все имеют право писать в c:\windows. сделать это можно и с моей dll с параметром -cfg. или ещё лучше рапсаковывать его прям рядом с dll, а в самой dll сделать определение того из какого каталога она загружена и читать arc.ini по умолчанию из него же

 
 
А как же код
Код:
char *argv[1000] = {"c:\\unarc.dll"};  //// Здесь будет искаться arc.ini!

Напрямую же присваивается c:\unarc.dll
Может я чего не так понимаю?

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 19:40 31-05-2010
Bulat_Ziganshin

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это начальное значение. его можно поменять, передав в команде параметр -cfg
 
а я предлагаю сделать чтобы значение по умолчанию было - arc.ini з того же каталога где находится сама unarc.dll, вот только не знаю как это сделать

Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 19:45 31-05-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bulat_Ziganshin
думается как-то так)
http://msdn.microsoft.com/en-us/library/ms683197(VS.85).aspx
 
Добавлено:
 

Цитата:
 
простейший вариант
HINSTANCE hInst;
...
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{  
if (fdwReason == DLL_PROCESS_ATTACH)
  hInst = hinstDll;
}
...
use hInst in program
 

 
или
 

Цитата:
 
От:     Блудов Павел rsdn    http://altergeo.ru/
Дата:     08.05.03 03:57
Оценка:    6 (1)
Здравствуйте, Lexey, Вы писали:
 
A>Как быть? Нужен абсолютный путь к самому файлу dll..
 
А если нужет HINSTANCE DLL'ки, то добавте в к-л заголовочный файл

Код:
extern "C" IMAGE_DOS_HEADER __ImageBase;
#define THIS_MODULE_HINSTANCE    reinterpret_cast<HINSTANCE>(&__ImageBase)

 
Тогда

Код:
::GetModuleFileName(THIS_MODULE_HINSTANCE, szBuffer, MAX_PATH)

 
Вернет как раз путь к dll.
 
Павел.
P.S. Проверено под vs & vs.net, будет ли это работать
у Борланда или Интела или еще у кого незнаю.

 
Добавлено:
А вообще гугл рулит...)

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 19:55 31-05-2010 | Исправлено: Profrager, 20:19 31-05-2010
Bulat_Ziganshin

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ещё один демо-скрипт на базе FreeArcExtract+DiskPromts версий.2.4. от Shegorat
 
Profrager
спс, попробую

Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 21:06 31-05-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IS7zip
Модуль DLL для распаковки 7zip и zip архивов из под InnoSetup с отображением процесса выполнения операции на прогрессбаре Inno.
В библиотеке 2 функции:
IS7ZipExtract
ISZipExtract
Первая для распаковки 7zip архивов, вторая - для zip.
Использована библиотека 7zxa.dll (переименованная в 7z.dll) из комплекта поставки 7Zip v9.13 (extra) Игоря Павлова. При выходе новых версий можно самим обновлять эту библиотеку.
Если используете только распаковку ZIP-архивов, то библиотека 7z.dll не требуется.
 
IS7zip версия 0.1
 
http://rghost.ru/1769842
http://rapidshare.com/files/393983250/IS7zipTEST01.zip

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравсвуйте, нужна помощь. Создаю архив с помощью FreeArc, спустя некоторое время упаковка прекращается и вылетает ошибка:

Как я понял, на системном диске не хватает места, чтобы создать архив. Можно-ли как-то поменять место, где FreeArc будет размещать эти самые tempfile's.
Например не на диске "C:/", т.е. системном, а на "D:/", например?

Всего записей: 6 | Зарегистр. 01-06-2010 | Отправлено: 15:54 01-06-2010 | Исправлено: Groove619, 15:55 01-06-2010
Bulat_Ziganshin

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Groove619
временный каталог указывается на первой же старнице диалога настроек. в след. раз задавай такие вопросы в теме freearc

Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 15:56 01-06-2010
Groove619



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bulat_Ziganshin
Спасибо. Не заметил.

Всего записей: 6 | Зарегистр. 01-06-2010 | Отправлено: 16:19 01-06-2010
EmZADE

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

Цитата:
IS7zip версия 0.1

Потестировал маленько, ну и вобщем-то та же проблема что и у dll от Экспедитора, а именно не распаковывает архивы больше 2.1гб, по крайней мере у меня 3гб. архив не распаковался.
Так же не распаковывает мультиволюмные архивы тобиш нельзя распаковать большой архив разбитый на части - у Экспедитора такая возможность есть.
Так же нельзя распаковать запароленные архивы, а надо бы -  у Экспедитора такая возможность есть.
Насколько я понял нет и процедуры отмены распаковки. Вобщем пока больше минусов, чем плюсов, так что ждём дальнейшего развития вашей dll.
 

Всего записей: 12 | Зарегистр. 01-06-2010 | Отправлено: 19:53 01-06-2010
Profrager



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

Цитата:
не распаковывает архивы больше 2.1гб

Не знаю в чем причина, посмотрю в чем дело, но мне кажется это связано с интерфейсом с оригинальной библиотекой 7zip.
 

Цитата:
Так же не распаковывает мультиволюмные архивы тобиш нельзя распаковать большой архив разбитый на части

Буду смотреть, что можно сделать
 

Цитата:
Так же нельзя распаковать запароленные архивы, а надо бы

Мне казалось это ненужная штука в данной тематике, вот и не добавлял.
 

Цитата:
Насколько я понял нет и процедуры отмены распаковки.

Она есть, просто не реализованная в скрипте Inno) Я не скриптописатель, мои цели иные.
В функции ProgressCallback если вернуть result=1, то процесс распаковки остановится.
 
 
 
Первых двух проблем можно избежать снова используя чтение с консольного приложения..но мне такой вариант уж очень не нравится. Не эстетично. Если других способов решения трабл не найду, сделаю через 7z.exe, там уж должно все работать.
 
P.S. спасибо за тестирование

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 23:17 01-06-2010
troyan90



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

Цитата:
IS7zip версия 0.1

еще бы такую штуку для распаковки фриарка...
 
Profrager
очень нуные твои длл. респект тебе

Всего записей: 397 | Зарегистр. 24-04-2010 | Отправлено: 12:02 02-06-2010 | Исправлено: troyan90, 12:03 02-06-2010
EmZADE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поддерживаю troyan90 насчёт фриарка, а то уж больно для работы с ним скрипты длинные и запутанные писать не удобно, а хочется простоты использования.

Всего записей: 12 | Зарегистр. 01-06-2010 | Отправлено: 14:35 02-06-2010 | Исправлено: EmZADE, 14:35 02-06-2010
Vo1T



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ISSrep v0.15.1 (основа srep 1.5) Скачать (перезалил)
 
Позволяет распаковывать Srep файлы с отображением прогресса распаковки в Inno Setup.
 
Основные процедуры
 

Всего записей: 312 | Зарегистр. 20-08-2008 | Отправлено: 17:28 02-06-2010 | Исправлено: Vo1T, 18:43 02-06-2010
Profrager



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

Цитата:
Bulat_Ziganshin, Profrager, я использовал GetCurrentDirectory которая возвращает директорию текущего процесса

 
Когда я вызываю dll из Inno у меня GetCurrentDirectory показывает каталог system32 в винде. Но никак не то место, где находится библиотека, поэтому приходится немного извращаться.

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

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

Цитата:
оддерживаю troyan90 насчёт фриарка, а то уж больно для работы с ним скрипты длинные и запутанные писать не удобно, а хочется простоты использования.

нет у меня времени сделать что-то попроще, увы
 

Цитата:
Bulat_Ziganshin, Profrager, я использовал GetCurrentDirectory которая возвращает директорию текущего процесса  

нам нужен каталог, гарантированно доступный на запись, чтобы докинуть туда arc.ini. тот, куда уже распаковали unarc.dll, под это требование подходит, а что такое GetCurrentDirectory? а не изменится ли оно от момента распаковки туда arc.ini до момента работы arc.dll? кроме того, использование этого каталога позволит не передавать литшний аргумент в выхов FreeArcExtract, и будет логично и для других использований dll (не одним InnoSetup жив человек)

Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 18:33 02-06-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bulat_Ziganshin
GetModuleFileName у меня замечательно работает в dll'ках)

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 18:48 02-06-2010
cepbl4



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ребят, а чем можно хоть немного сжать файлы .iwd? (игра CoD MW2)
решил замутить репак с взломаным MP
freearc и 7z не берут (файл на 160Мб делают на 161Мб при разных степенях сжатия, каждый)
 
заодно файлы .ff (та же игра и все та же ситуация с фриарком и 7z)
 
ваще игру эту не могу сжать, даж чтоб на 3 болваны ДВД5 (весит 11Гб)
 
ролики не буду резать

Всего записей: 348 | Зарегистр. 19-11-2007 | Отправлено: 22:15 02-06-2010 | Исправлено: cepbl4, 22:29 02-06-2010
Profrager



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

 
Библиотека, включающая в себя все необходимое для распаковки и подготовки файлов с помощью прекомпрессоров посредством инсталлятора InnoSetup, с равномерным отображением всех идущих операций на одном прогрессбаре. Хотя..в общем-то не хватает только поддержки .arc архивов
 
Включает в себя модули(функции) для распаковки
ISZip     - распаковка ZIP-архивов
IS7Zip   - распаковка 7-ZIP-архивов
ISPrecomp - распаковка Precomp версий 0.38 и v0.4
ISSRep  - распаковка SRep v1.5
 
 
Решены (добавлены ) некоторые проблемы в модулях:
IS7Zip
  • решил проблему с архивами более 2Гб
  • добавил обработку паролей
  • за поддержку multi volume даже не брался и, думается, с решением первой проблемы эта становится некритичной. Оставлю ее на потом, если вообще возьмусь это дело)
Скрипт
  • сделал кнопку отмены
  • реализовал равномерное движение полоски при выполнении всех операций на одном прогрессбаре Inno
  • добавился баг: ИНОГДА если запускаешь скрипт через InnoSetup после завершения(или отмены) операции и нажатия кнопки "Finish" вылетает ошибка setup.tmp о невозможности чтения какого-то адреса. При простом запуске setup.exe проблем не возникало  Может комментариев в скрипте лишку? Помню когда-то были проблемы с ними.

 
   Необходимые файлы:
  • При любой конфигурации в проекте необходим InnoCallback.dll;
  • Если используете ISZipExtract (распаковка ZIP) никаких дополнительных файлов не требуется;
  • Если используете IS7ZipExtract (распаковка 7-ZIP) необходимо добавить 7z.dll;
  • Если используете ISPrecompExtract (распаковка файлов Precomp v 0.38)необходимо добавить:
    packjpg_dll.dll, zlib1.dll, precomp038.exe, RTconsole.exe;
  • Если используете ISPrecompExtract (распаковка файлов Precomp v 0.4) необходимо добавить:
    packjpg_dll.dll, precomp04.exe, RTconsole.exe;
  • Если используете ISSRep (распаковка SRep) необходимо добавить srep.exe, RTconsole.exe;
     
     
    Скрипт с примером прилагается. Содержит достаточно подробные комментарии.
     
     
    http://rghost.ru/1782889
    http://rapidshare.com/files/394508501/ISDone0.1.zip
     
    Добавлено:
     
     
    cepbl4
     

    Цитата:
    ребят, а чем можно хоть немного сжать файлы .iwd? (игра CoD MW2)

    файлы *.iwd - голимый zip архив, поддается хорошо Precomp'у, с последующей обработкой другими фильтрами и конечной запаковкой lzma.
    ..пробежался по этим файлам..внутри *.iwd архивов звуковые файлы, если необходим беспотерьный вариант репака, то такие данные туго паковаться будут, но если в ogg пожать будет огромная выгода в размере
    Файлы *.ff тоже архивы с ZLib сжатием, но уже без заголовков PKZIP. Суются Precomp'у, он их хорошо будет кушать)
    Правда если так сделать репак будет часа 2 устанавливаться)

  • Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 22:42 02-06-2010
    vint56



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

    Всего записей: 1277 | Зарегистр. 07-10-2008 | Отправлено: 06:01 03-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