|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1264 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты 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
|
Профиль | Отправить PM | Цитировать Всем привет.
Подскажите пожалуйста, как реализуется рабочий вариант бэкапа и возможность отключать деинсталлятор через task. Прошу готовый пример. Как в этом русификаторе (примеры из справки не очень подходят). Спасибо. |
Отправлено: 17:18, 06-12-2018 | #161 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Доброго,
подскажите, есть ли возможность установить разные значения для VersionInfoDescription (в разделе [Setup]) в зависимости от локализации данное поле отображается в описании установщика, если выбрать "Свойства", по клику ПКМ |
Отправлено: 11:56, 21-12-2018 | #162 |
Пользователь Сообщения: 91
|
Профиль | Сайт | Отправить 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
|
Профиль | Отправить PM | Цитировать Цитата TROY Diamond:
|
|
Отправлено: 14:41, 22-12-2018 | #164 |
Пользователь Сообщения: 91
|
Профиль | Сайт | Отправить PM | Цитировать Iska, давайте по существу, я же написал для чего!
|
Отправлено: 15:06, 22-12-2018 | #165 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:52, 22-12-2018 | #166 |
Пользователь Сообщения: 91
|
Профиль | Сайт | Отправить PM | Цитировать Iska, что-то вообще не то! Написал вам в Личку - ваш ящик переполнен, посмотрите, пожалуйста!
|
Последний раз редактировалось TROY Diamond, 22-12-2018 в 20:30. Отправлено: 19:19, 22-12-2018 | #167 |
Ветеран Сообщения: 1264
|
Профиль | Отправить PM | Цитировать Цитата ADRebus:
Цитата 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:
|
|||
Отправлено: 12:05, 23-12-2018 | #168 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
Кстати, почему не рекомендуете коллеге TROY Diamond Вашу собственную разработку, на которую я ссылался выше?! Цитата TROY Diamond:
|
||
Отправлено: 13:01, 23-12-2018 | #169 |
Пользователь Сообщения: 91
|
Профиль | Сайт | Отправить PM | Цитировать Iska!
Цитата El Sanchez:
Я привёл вам пример рабочего скрипта! НО там используется старый консольный 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 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|