Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9]

Ответить
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 9]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1264
Благодарности: 1024


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 06-06-2020
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;

  • RegExporter - Бесплатная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.3.0 [17.01.2015] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z
Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z
Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:09, 04-04-2018

 

Новый участник


Сообщения: 23
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png 111.png
(34.0 Kb, 15 просмотров)

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

Отправлено: 17:18, 06-12-2018 | #161



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго,
подскажите, есть ли возможность установить разные значения для VersionInfoDescription (в разделе [Setup]) в зависимости от локализации
данное поле отображается в описании установщика, если выбрать "Свойства", по клику ПКМ

Отправлено: 11:56, 21-12-2018 | #162


Пользователь


Сообщения: 91
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Здравствуйте!

Прошу прощения если создал тему НЕ в том разделе, просьба перенести её в соответствующий!

Подскажите, пожалуйста, аналог кода ниже, с использованием консольных библиотек от 7-Zip, WinRAR? библиотек Inno Setup и т.п. , для упаковки, БОЛЬШОГО количества имеющихся папок, в отдельные архивы ZIP, с заданием ОПРЕДЕЛЁННОГО расширения и обычной степенью сжатия, в процессе установки, с последовательным удалением каждой папки СРАЗУ ЖЕ ПОСЛЕ СОЗДАНИЯ АРХИВА, из секции CODE, в Inno Setup, а НЕ с использованием батника и т.п. из секции RUN!

Либо посоветуйте, как модифицировать и доработать данный код, желательно помочь и прислать ПОЛНЫЙ код для секции CODE и Files в Inno Setup:

Скрытый текст

Код: Выделить весь код
Секция Files
Source: "Data\Папка_pak\*"; DestDir: "{app}\DATA\ПАПКА_pak"; BeforeInstall: ChangeCaption('Распаковка файлов...'); AfterInstall: ExtLog(); Flags: ignoreversion overwritereadonly recursesubdirs createallsubdirs sortfilesbyextension
Source: "{app}\Файл-пустышка"; DestDir: "{tmp}\"; BeforeInstall: ChangeCaption('Создание ФАЙЛА(архива).pk5...'); AfterInstall: Pack('ПАПКА_pak'); Flags: ignoreversion overwritereadonly
Source: "{app}\Файл-пусиышка"; DestDir: "{tmp}\"; BeforeInstall: ChangeCaption('Удаление временных файлов...'); AfterInstall: RF(ExpandConstant('{app}\Main\pkzip.exe')); Flags: ignoreversion overwritereadonly

Секция Code
procedure Pack(str: string);
var 
res : Integer;
begin
Exec(ExpandConstant('{app}\Main\pkzip.exe'), ' -add -dir=relative -NoZipExtension '+str+'.pk3' + ' ' + str + '\*.*', ExpandConstant('{app}\Main\'), SW_HIDE, ewWaitUntilTerminated, Res);
RD(ExpandConstant('{app}\Main\')+str);
end;

procedure RD(Dir:string);
var 
res : integer;
begin
Exec('cmd.exe', ' /c rd /S /Q ' + AddQuotes(Dir),ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
Exec('cmd.exe', ' /c rd /S /Q ' + '"'+Dir+'"',ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
end;

procedure RF(file:string);
var 
res : Integer;
begin
Exec('cmd.exe', ' /c del /F /Q ' + AddQuotes(file),ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
Exec('cmd.exe', ' /c del /F /Q ' + '"'+file+'"',ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
end;


Всё это нужно для создания "игровых" архивов. Все "игровые" - это Архивы ZIP, с переименованным расширением. Сжатие ZIP-архивов - НЕ благодарное дело и НЕ приносит большого выигрыша в весе!
Поэтому я распаковал все, в отдельные, одноимённые папки - всё сжал, теперь нужно чтобы в процессе извлечения (копирования) установщиком Inno Setup, этих папок по окончанию копирования каждой папки создавался архив, а эта папка удалялась, потом копировалась следующая - создавался архив и папка после сразу же удалялась! А НЕ в конце всей установки!

Последний раз редактировалось TROY Diamond, 22-12-2018 в 15:06.


Отправлено: 14:05, 22-12-2018 | #163


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата TROY Diamond:
для упаковки, БОЛЬШОГО количества имеющихся папок, в отдельные архивы ZIP, с заданием ОПРЕДЕЛЁННОГО расширения и обычной степенью сжатия, в процессе установки, с последовательным удалением каждой папки СРАЗУ ЖЕ ПОСЛЕ СОЗДАНИЯ АРХИВА, »
Вы что — решили очередного вымогателя «запилить», коллега ?

Отправлено: 14:41, 22-12-2018 | #164


Пользователь


Сообщения: 91
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Iska, давайте по существу, я же написал для чего!

Отправлено: 15:06, 22-12-2018 | #165


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


TROY Diamond, эта шутка была.

По существу — я хотел бы уяснить смысл сих действий, которые по существу приводят лишь к увеличению времени установки. В чём глубинный смысл? Чем Вам так не нравятся архивы внутри инсталляции?

P.S. На выбор смотрите раз, два.

Отправлено: 18:52, 22-12-2018 | #166


Пользователь


Сообщения: 91
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Iska, что-то вообще не то! Написал вам в Личку - ваш ящик переполнен, посмотрите, пожалуйста!

Последний раз редактировалось TROY Diamond, 22-12-2018 в 20:30.


Отправлено: 19:19, 22-12-2018 | #167


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1264
Благодарности: 1024

Профиль | Отправить PM | Цитировать


Цитата ADRebus:
подскажите, есть ли возможность установить разные значения для VersionInfoDescription (в разделе [Setup]) в зависимости от локализации
данное поле отображается в описании установщика, если выбрать "Свойства", по клику ПКМ »
ADRebus, локализации чего?
Цитата TROY Diamond:
Подскажите, пожалуйста, аналог кода ниже, с использованием консольных библиотек от 7-Zip, WinRAR? библиотек Inno Setup и т.п. , для упаковки, БОЛЬШОГО количества имеющихся папок, в отдельные архивы ZIP, с заданием ОПРЕДЕЛЁННОГО расширения и обычной степенью сжатия, в процессе установки, с последовательным удалением каждой папки СРАЗУ ЖЕ ПОСЛЕ СОЗДАНИЯ АРХИВА, из секции CODE, в Inno Setup, а НЕ с использованием батника и т.п. из секции RUN! »
TROY Diamond,
Скрытый текст

Код: Выделить весь код
[Files]
Source: 7za.exe; Flags: dontcopy
; {app}\data\test01
Source: {app}\test01\*; DestDir: {app}\data\test01; Flags: ignoreversion overwritereadonly recursesubdirs createallsubdirs sortfilesbyextension
Source: dummy; DestDir: {app}\data; AfterInstall: Pack(ExpandConstant('{app}\data\test01')); Flags: deleteafterinstall
; {app}\data\test02
Source: {app}\test02\*; DestDir: {app}\data\test02; Flags: ignoreversion overwritereadonly recursesubdirs createallsubdirs sortfilesbyextension
Source: dummy; DestDir: {app}\data; AfterInstall: Pack(ExpandConstant('{app}\data\test02')); Flags: deleteafterinstall

[Code]
procedure Pack(const APath: string);
var
  ResultCode: Integer;
begin
  if not FileExists(ExpandConstant('{tmp}\7za.exe')) then
    ExtractTemporaryFile('7za.exe');
  if not Exec(ExpandConstant('{tmp}\7za.exe'), Format('a -tzip -sdel -y "%0:s.pk3" .\%0:s\*', [ExtractFileName(APath)]), ExtractFileDir(APath), SW_HIDE, ewWaitUntilTerminated, ResultCode) then
    RaiseException(Format('Add new data from ''%s'' to archive ''%s.pk3'' failed with error 0x%.8x (%s)', [APath, ExtractFileName(APath), ResultCode, SysErrorMessage(ResultCode)]));
  if not RemoveDir(APath) then
  begin
    ResultCode := DLLGetLastError;
    RaiseException(Format('Unable to delete empty folder ''%s''. Error code: 0x%.8x (%s)', [APath, ResultCode, SysErrorMessage(ResultCode)]));
  end;
end;

Цитата Iska:
По существу — я хотел бы уяснить смысл сих действий, которые по существу приводят лишь к увеличению времени установки. В чём глубинный смысл? Чем Вам так не нравятся архивы внутри инсталляции? »
Iska, размер инсталлятора по схеме zip + LZMA больше, чем просто LZMA. Хочет сэкономить на размере в ущерб времени установки.

Отправлено: 12:05, 23-12-2018 | #168


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата El Sanchez:
Iska, размер инсталлятора по схеме zip + LZMA больше, чем просто LZMA. »
El Sanchez, сильно больше?

Кстати, почему не рекомендуете коллеге TROY Diamond Вашу собственную разработку, на которую я ссылался выше?!

Цитата TROY Diamond:
Написал вам в Личку - ваш ящик переполнен, посмотрите, пожалуйста! »
Пишите прямо здесь.

Отправлено: 13:01, 23-12-2018 | #169


Пользователь


Сообщения: 91
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Iska!

Цитата El Sanchez:
Iska, размер инсталлятора по схеме zip + LZMA больше, чем просто LZMA. Хочет сэкономить на размере в ущерб времени установки.
Да так и есть! Если пытаться сжать уже сжатое в ZIP, с помощью стандартных средств Inno Setup в LZMA, то почти вообще НЕ сжимается, а если распаковать все ZIP-архивы в отдельные папки, то сжимается существенно в LZMA.

Я привёл вам пример рабочего скрипта! НО там используется старый консольный pkzip, который давным-давно НЕ поддерживается и НЕ развивается разработчиками! ((( На некоторых компах он почему-то НЕ "отрабатывает", (видимо из-за старости или какой-то неправильности скрипта), а также некоторые антивирусы на него "ругаются"! ((

Я просил усовершенствовать-доработать данный скрипт или предложить аналог вместо pkzip, использовать иные библиотеки от RAR, 7-Zip или ещё откуда-то. Сжать в Zip не так сложно ведь? Просто папок 100-ни!

Пример, есть папки Pack01, Pack02, Pack03 - это распакованные одноимённые архивы ZIP (Pack01.pack, Pack02.pack., Pack03.pack) - условно для примера.

Нужно чтобы из установщика Inno Setup папка Pack01 - извлеклась скопировалась в папку установки, после чего заархивировалась в необходимый архив ZIP с обычной степенью сжатия - и именем и расширением, какое нужно, например, Pack01.pack, после чего папка Pack01, была сразу же удалена, и только после этого началось копирование Pack02... - создание из неё архива Pack02.pack, удаление папки Pack02 и т.д...

Отправлено: 13:13, 23-12-2018 | #170



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58




 
Переход