PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]


Страниц : 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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 [105] 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

vk_k14m@vk
20-09-2017, 01:04
что мешает сделать это даже до создания инсталляции? Что мешает «запаковать папки "00" и "01" в специальне архив с помощью packer.exe» на месте и поместить в инсталляцию уже готовый архив? »
Предполагается что у устанавливаемого приложения (на самом деле игры) будет на выбор множество взаимозаменяемых компонентов. Все они хранятся в специальных архивах которые можно распаковывать/упаковывать через packer.exe. Тобиш в зависимости от того какие галочки ты выберешь при установке эти архивы могут быть слегка либо совершенно разными. А если эти архивы весят по 300-900 МБайт? Не буду же я раздувать инсталятор кучей архивов с дубликатами файлов.

Вот по этому и нужно раскидать по папками нужные файлы и в конце их запаковать.

Dodakaedr
20-09-2017, 08:22
При переходе решил изменить код. Но дело в том, что перестала работать ботва т.е. не отображаются картинки. Помогите решить проблему. »
В модуле Code_2.iss напишите название секции [Code]

boss911
20-09-2017, 08:33
После распаковки этих файлов должна запуститься консоль и запаковать папки "00" и "01" в специальне архив с помощью packer.exe. »
[Run]
Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/data/00; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/data/01; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/data/02; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
И так далее. Флаг runhidden позволит скрыть консольное окно (packer.exe), можно убрать, если не требуется.

habib2302
20-09-2017, 11:20
Dodakaedr, для обычной версии inno setup это ничего не меняет. как не отображались так и не отображаются

Dodakaedr
20-09-2017, 13:45
для обычной версии inno setup это ничего не меняет. как не отображались так и не отображаются »
Тогда создайте кастомную панель с белым цветом, лого конвертируйте в jpg формат с белым фоном.


ImgPanel := TPanel.Create(wizardform);
ImgPanel.parent := wizardform;
imgpanel.color := clwhite;
imgpanel.setbounds(370, 3, 55, 55);
imgpanel.bevelouter := bvNone;
........

lPicHandle := ImgLoad(imgpanel.Handle, ExpandConstant('{tmp}\WMSI.jpg'), ScaleX(0), ScaleY(0), WizardSmallBitmapImage.Width, WizardSmallBitmapImage.Height, True, True);
WizardSmallBitmapImage.Hide;
ImgSetVisibility(lPicHandle, True);
ImgApplyChanges(imgpanel.Handle);

vk_k14m@vk
20-09-2017, 14:46
И так далее. Флаг runhidden позволит скрыть консольное окно (packer.exe), можно убрать, если не требуется. »
Большое спасибо, это то что надо.

И еще один вопрос. Архивы созданы с помощью packer.exe буду удаляться при удалении приложения?

Ах да, нужно же потом удалить те временные папки после запаковки. Как это сделать?

Iska
20-09-2017, 18:01
И еще один вопрос. Архивы созданы с помощью packer.exe буду удаляться при удалении приложения? »
Разумеется нет — ведь этих файлов не было в комплекте поставки.

vk_k14m@vk
20-09-2017, 18:17
Разумеется нет — ведь этих файлов не было в комплекте поставки. »
А вручную их прописать нельзя? Например при удалении некоторых игр у меня и сейвы удалялись. Хотя их в установщике не было...

boss911
20-09-2017, 18:46
Архивы созданы с помощью packer.exe буду удаляться при удалении приложения? »
Не будут.
А так:
[UninstallDelete]
Name: {app}\data\*.ext; Type: files- будут. Только правильно укажите путь и расширение файлов (архивов). В данном случае удалены будут все файлы по указанной вами маске.

нужно же потом удалить те временные папки после запаковки. »
На нужных папках, которые прописаны в секции [Files], дописать флаг deleteafterinstall (Flags: deleteafterinstall).

vk_k14m@vk
20-09-2017, 18:51
Код:
[Run]
Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/data/00; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/data/01; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/data/02; Description: Упаковка файлов...; Flags: waituntilterminated runhidden»
Не работает. Просто ничего не происходит. Если убрать флаг runhidden то видно что консоль открывается и тут же пропадает. Хотя она должна несколько секунд упаковывать файлы.

boss911
20-09-2017, 19:05
Если убрать флаг runhidden то видно что консоль открывается и тут же пропадает. Хотя она должна несколько секунд упаковывать файлы. »
Значит вы не правильно указали параметры (в 'Parameters') упаковки файлов, тут уж давайте сами разбирайтесь, как работать с "packer.exe". Моя задача была вам показать, как запустить "packer.exe" с параметрами (параметры были предоставлены в вашем примере) после распаковки файлов, судя по вашему ответу, packer.exe запустился, далее дело за вами.

vk_k14m@vk
20-09-2017, 19:10
Значит вы не правильно указали параметры (в 'Parameters') упаковки файлов, тут уж давайте сами разбирайтесь, как работать с "packer.exe". Моя задача была вам показать, как запустить "packer.exe" с параметрами (параметры были предоставлены в вашем примере) после распаковки файлов, судя по вашему ответу, packer.exe запустился, далее дело за вами. »
Спасибо, разобрался. Вместо "Parameters: {app}/data/00" достаточно было написать просто "Parameters: 00".

Теперь другой вопрос
На нужных папках, которые прописаны в секции [Files], дописать флаг deleteafterinstall (Flags: deleteafterinstall). »
А есть другой способ? Через туже консоль например. Мое приложение после установки будет весить около 33 гигов. Хоть и сказал что папки будут упакованы в архив, но без применения сжатия. Архивы даже немного больше будут весить. И это не изменить.
Тоесть 30 гигов весят папки, +примерно гигов 33 будут весить архивы после запаковки. И всего будет нужно 63 гига просто что б установить приложение. Для экономии места было б удобно удалять папку сразу после того как ее запаковали, а потом преступать к запаковке следующей папки. Так место требуемое для установки сократится в два раза.

Iska
20-09-2017, 19:19
vk_k14m@vk, есть мнение, что Вам с такими объёмами и запросами пора бы уже не просто задавать вопросы, но и самому всерьёз взяться за изучение Pascal scripting.

boss911
20-09-2017, 19:24
Для экономии места было б удобно удалять папку сразу после того как ее запаковали, а потом преступать к запаковке следующей папки. Так место требуемое для установки сократится в два раза. »
[Run]
Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/00; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {sys}\CMD.EXE; WorkingDir: {app}/data; Parameters: /C RD /S /Q 00; Description: Упаковка файлов...; Flags: waituntilterminated runhidden

Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/01; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {sys}\CMD.EXE; WorkingDir: {app}/data; Parameters: /C RD /S /Q 01; Description: Упаковка файлов...; Flags: waituntilterminated runhidden

Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/02; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {sys}\CMD.EXE; WorkingDir: {app}/data; Parameters: /C RD /S /Q 02; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
И так далее. Удаление папки сразу после ее упаковки осуществляется с помощью командной строки, консольное окно которой так же будет скрыто.

vk_k14m@vk
20-09-2017, 20:03
есть мнение, что Вам с такими объёмами и запросами пора бы уже не просто задавать вопросы, но и самому всерьёз взяться за изучение Pascal scripting. »
Хорошо когда у человека есть свое мнение. Как только я узнаю что такое Pascal scripting так сразу начну его изучать. Но зачем учить весь язык если тебе нужно только несколько предложений?

[Run]
Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/00; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {sys}\CMD.EXE; WorkingDir: {app}/data; Parameters: /C RD /S /Q 00; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/01; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {sys}\CMD.EXE; WorkingDir: {app}/data; Parameters: /C RD /S /Q 01; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {app}/data/packer.exe; WorkingDir: {app}/data; Parameters: {app}/02; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
Filename: {sys}\CMD.EXE; WorkingDir: {app}/data; Parameters: /C RD /S /Q 02; Description: Упаковка файлов...; Flags: waituntilterminated runhidden
И так далее. Удаление папки сразу после ее упаковки осуществляется с помощью командной строки, консольное окно которой так же будет скрыто. »
Большое спасибо добрый человек. Это пожалуй все что мне нужно было знать...

Iska
20-09-2017, 20:39
Как только я узнаю что такое Pascal scripting так сразу начну его изучать. »
«Win-R», «hh.exe "mk:@MSITStore:%ProgramFiles%\Inno%20Setup%205\ISetup.chm::/topic_scriptintro.htm"» (или «hh.exe "mk:@MSITStore:%ProgramFiles(x86)%\Inno%20Setup%205\ISetup.chm::/topic_scriptintro.htm"» — если у Вас x64 ОС), «Enter».

vk_k14m@vk
20-09-2017, 20:44
«Win-R», «hh.exe "mk:@MSITStore:%ProgramFiles%\Inno%20Setup%205\ISetup.chm::/topic_scriptintro.htm"» (или «hh.exe "mk:@MSITStore:%ProgramFiles(x86)%\Inno%20Setup%205\ISetup.chm::/topic_scriptintro.htm"» — если у Вас x64 ОС), «Enter». »
Обожаю английский язык...

vk_k14m@vk
21-09-2017, 23:56
Вопрос. В секции [Files] важна последовательность?
Например такое выражение:
[Files]
Source: "D:\Inno Setup\Installer\1 Main Files\test\testapp.exe"; DestDir: "{app}"; Components: main;
Source: "D:\Inno Setup\Installer\2 Addon\test\testapp.exe"; DestDir: "{app}"; Components: addon;

Где "1 Main Files" файл который устанавливается в любом случае. А где "2 Addon" - файл установится если во время установки поставить "галочку".

Последовательность имеет значение? По логике сначала должен установится
D:\Inno Setup\Installer\1 Main Files\test\testapp.exe
а потом его должен заменить
D:\Inno Setup\Installer\2 Addon\test\testapp.exe

Я прав?

mig73
22-09-2017, 00:14
vk_k14m@vk,
Да, влияет на порядок установки. А ещё, группировка однородных файлов повысит коэффициент сжатия при компиляции.

vk_k14m@vk
22-09-2017, 00:18
А ещё, группировка однородных файлов повысит коэффициент сжатия при компиляции. »
Ты имеешь в виду файлов с одинаковым расширением, например *.BMP?




© OSzone.net 2001-2012