Показать полную графическую версию : Inno Setup. Прочие вопросы
не создавались файлы типа unins000? »
[Setup]
Uninstallable=no
Sakigami
17-08-2016, 21:19
Привет всем, есть вопрос по поводу сжатия. Директива LZMABlockSize управляет размером блока но есть только возможность установить блок с определенным размером, а вот при сжатии LZMA2 другими архиваторами есть возможность установить непрерывный размер блока и должно бы увеличить степень сжатия. В Inno есть такая возможность? Есть тут спецы по сжатию может что-то посоветуете?
Вот это я ставлю
Compression=lzma2/ultra64
LZMAUseSeparateProcess=yes ;отделяет процесс сжатия от основного компилятора что дает ему возможность использовать больше ресурсов
LZMAMatchFinder=BT ;метод Binary Tree обеспечивает лучшие сжатие за счет скорости сжатия но вроде как стоит по умолчанию (ставлю на всякий случай)
LZMADictionarySize=256000 ;размер словаря 256МБ нагуглил что это самый оптимальный размер (по умолчанию в ultra64 - 64МБ) или может быть все таки пробовать макс 1048576 ?
LZMANumFastBytes=273 ;максимальный размер слова (быстрых байтов) с описания ясно что улучшает сжатие
LZMABlockSize=... ;размер блока = размер всех файлов разделенный на число потоков
LZMANumBlockThreads=4 ;число потоков равное числу процессоров
LZMAAlgorithm=1 ;нормальный алгоритм сжимает медленней но лучше но вроде тоже стоит по умолчанию (ставлю на всякий случай)
Я все правильно понимаю? Внешние упаковщики не предлагать не люблю их :) Жать еще не пробовал так как сейчас на руках нет компа, а только слабый старый ноут но хотелось бы узнать мнение спецов
установить непрерывный размер блока и должно бы увеличить степень сжатия. »
Возможно, я вас не правильно понял, если речь идет о непрерывном сжатии, тогда:
[Setup]
SolidCompression=yes
Sakigami,
Я не спец, но использую Inno для установки портативных программ и определил для себя такие параметры макс. сжатия без сторонних утилит:
Compression=lzma2/ultra64
InternalCompressLevel=Ultra64
SolidCompression=yes
LZMABlockSize=262144
LZMADictionarySize=312000
LZMAUseSeparateProcess=yes
LZMANumBlockThreads=4
LZMANumFastBytes=273
Да, Binary Tree по умолчанию если не fast LZMA. LZMADictionarySize можно и больше, но памяти не хватает :) LZMAAlgorithm по умолчанию 1 если не fast LZMA. Другие оптимизации в Inno 5.5.9 не искал.
Sakigami
18-08-2016, 14:27
Спасибо за ответы но вот например в 7-zip есть размер блока непрерывный, а SolidCompression это вроде отдельно от LZMABlockSize размера блока идет и кто нибудь пробовал жать с ним инсталляторы больше 100 МБ?
Sakigami,
Непрерывный в 7-zip и SolidCompression в Inno это одно и тоже и означает что компилятор будет обращать внимание на группировку однородных файлов в секции [Files]. Так же как WinRAR смотрит на группировку файлов в RarFiles.lst при создании непрерывного архива. LZMABlockSize это несколько другое и если перегнуть с размером, Inno откажется компилировать с нехваткой ресурсов, даже если объем всех файлов 50Мб.
С Новым Годом всех!
К вашему вниманию сборка Inno Setup 5.5.9 RUS Extra Pack, содержащую огромное количество инструментов и примеров , помогающих в работе с созданием инсталлятора Inno Setup/
Содержит: Inno Setup Compiler, Inno Setup Preprocessor, Inno Script Studio, Inno Extractor, ISSJoiner, RegISS, ISSkin, VCL Stiles Inno, набор иконок( 300шт), Русские справки и компилляции советов с разных ресурсов(Ru-Board, Krinkels и т.д.), огромный набор скриптов.
Доступ ко всем основным функция по ПКМ.
Скачать - Яндекс Диск (https://yadi.sk/d/lFX-fyw_38zcxs)
Зеркало- ссылка работает 3 месяца, до 12.04.2017 (http://rgho.st/7zY2CNWcK)
Просьба не зеркалить, файл выложен ТОЛЬКО на OSZONE!
При проблемах скачивания обращайтесь, будем решать.
И на всякий случай: Профессионально переведенная на русский язык оригинальная справка для Inno Setup v5.5.9. Александрова Мария (BagIra) и Меликян Арсен (bugron).
Ссылка на Я-диске (https://yadi.sk/d/cUNPM8wtuWPvJ).
El Sanchez
14-01-2017, 11:25
Профессионально переведенная на русский язык оригинальная справка для Inno Setup v5.5.9 »
mig73, много неправильных и некорректно переведенных выражений.
Inno Setup Unpacker 0.47 (https://sourceforge.net/projects/innounp/files/innounp/innounp%200.47/innounp047.rar/download) теперь поддерживает Inno 5.6.1.
Русская справка по Inno Setup 5.6.1 (https://yadi.sk/d/cUNPM8wtuWPvJ)
Обновлен русификатор Inno Script Studio_2.3.0.0 (https://yadi.sk/d/dqBkJqku3ZVKbA) от wylek.ru team
ivanov73
09-12-2018, 14:49
Не знаю в какой ветке написать. Кому дать денег чтобы добавить проверку железа перед инсталляцией? Есть специалисты на фрилансе?
Inno Setup Unpacker 0.48 (https://sourceforge.net/projects/innounp/files/innounp/innounp%200.48/innounp048.rar/download)
Русская справка Inno Setup 6.0.0 Beta (https://yadi.sk/d/QuajazKsip1s6A)
Windows XP более не поддерживается.
Если точнее, то:
OS requirements change: Windows 2000, XP, and Server 2003 are no longer supported. Windows Vista is the minimum supported operating system.
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=userdocs:Inno Setup Examples Output
[Files]
Source: "MyProg\MyProg.exe"; DestDir: "{app}"
[Codе]
function InitializeSetup(): Boolean;
begin
try
ExpandConstant('{exception}');
except
MsgBox(Format('Runtime error (at %d:%d)'#13#10, [ExceptionProc, ExceptionPos]) + ExceptionToString(ExceptionType, ExceptionParam), mbError, MB_OK);
end;
end;
Вопрос - что за значения отображают ExceptionProc и ExceptionPos?
В моем случае отображаются 10 и -2.
ExceptionType - тип исключения (ErDivideByZero, ErMathError, erCouldNotCallProc, erOutofRecordRange, erOutOfMemory и т.п.);
ExceptionParam - текст сообщения об ошибке;
ExceptionProc - исключение в процедуре, но какой? что за возвращаемое значение 10?
ExceptionPos - что за позиция, где или относительно чего, что за -2?
habib2302
07-12-2019, 16:09
web_form, IsWin7Logo 0.9 Beta VoLT (https://drive.google.com/file/d/1V_Ivlk72cRtaR8kfwhne_vU_EZ91xNRO)
Или через ботву https://drive.google.com/file/d/1Hzb6SJGxzjvw4Nk_b7SXscKVNIUD1LVi
Вот готовый вариант https://drive.google.com/file/d/1cCXrrQQRJlKzVXSFUeJlyfIGgpq3FdMu
habib2302
09-12-2019, 11:02
web_form,
На 4 скрине я перенес необходимые файлы, которые требуются при запуске инсталлятора в функцию InitializeSetup
https://c.radikal.ru/c42/1912/31/0c95c7e1b5bc.png (https://c.radikal.ru/c20/1912/62/d3db09217d5c.jpg) https://a.radikal.ru/a06/1912/86/ec486e6c5c23.png (https://b.radikal.ru/b24/1912/8a/d4365008397d.jpg) https://c.radikal.ru/c07/1912/bf/09d408349221.png (https://a.radikal.ru/a00/1912/7e/31b82ed49ded.jpg) https://c.radikal.ru/c12/1912/3b/6c856fc8238f.png (https://c.radikal.ru/c33/1912/47/a9488ce68f85.jpg) https://b.radikal.ru/b39/1912/36/68aa2067fe70.png (https://b.radikal.ru/b10/1912/af/7b09473a0d19.jpg) https://d.radikal.ru/d00/1912/a4/300f9d168a8d.png (https://c.radikal.ru/c33/1912/46/3734650bb77f.jpg) https://a.radikal.ru/a42/1912/fc/55051e89fa4e.png (https://d.radikal.ru/d43/1912/ed/2ef92b0c3149.jpg) https://c.radikal.ru/c12/1912/f5/78d58857bffe.png (https://b.radikal.ru/b25/1912/63/d80e07d8b333.jpg)
habib2302
09-12-2019, 19:03
web_form,
lPLogo:= ImgLoad(WizardForm.Handle, ExpandConstant('{tmp}\logo.png'), ScaleX(214), ScaleY(368), ScaleX(158), ScaleY(37), True, True);
Первые два 214 и 368 значения это координаты картинки, последние два 158 и 37 это размер картинки
Добрый день Форумчане! Есть вопрос, на который ни как не могу найти ответ...
Некая программа при установке создает в реестре путь к исполняемому файлу Test.ехе
При выходе обновления, приведенный ниже скрипт проверят существует ли даний путь в реестре, и наличие по даному пути файла Test.ехе
Если путь и файл существуют программа устанавивает обновление, в противном случае видает сообщение (Установка Прекращена, Test.ехе не найден)
Сам Test.ехе имеет версию файла 1.3, так вот собствинно вопрос - как при обновлении проверить версию файла Test.ехе, и в случае если версия файла Test.ехе ниже 1.3, прекратить установку виводя собщение.
function InitializeSetup(): Boolean;
begin
if FileExists(ExpandConstant('{reg:HKLM\SOFTWARE\Test,PATH_APPLICATION}\Test.exe')) then
begin
Result:= True;
end
else
begin
MsgBox('Установка Прекращена, Test.ехе не найден', mbCriticalError, MB_OK);
Result:= False;
end;
end;
Знаю что это реально cделать не прибегая к стороннему софту, пробую писать код полагаясь на примеры найденные в интернете, и читая мануал но никак. Не хватает квалификации... :help:
Зарания Благодарю.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC