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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)

Модерирует : gyra, Maz

articlebot (13-10-2013 23:33): продолжение темы - №15
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268

   

batva



crazy administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
Inno Setup часть 14

Предыдущие части
Это мощное бесплатное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта, но генерит на 200-300 кб больший инсталятор. На данный момент он конкурирует и даже превосходит многие коммерческие установщики по функциональности и стабильности.
 
Последние версии:
Inno Setup QuickStart Pack (ansi) 5.5.3 [30.01.2013]
Скачать (1.9 Mb)
Inno Setup QuickStart Pack (unicode) 5.5.3 [30.01.2013]
Скачать (2.2 Mb)
Что нового? | Все сборки
Русский язык для Inno Setup версии 5.5.x от vadimsva [02.06.2012]
Скачать
Русский язык для Inno IDE версии 1.0.0.0078 от vadimsva
Скачать |
 
Расширенная версия от китайских собратьев. Домашняя страница ResTools
Inno Setup Compiler 5.5.0-5.1 build 120808
Скачать (2.98 Mb) | Зеркало (2 Mb) - убраны картинки для уменьшения размера архива
Что нового?
Inno ISCmplr Setup 5.5.1 build 120726
Скачать (1.73 Mb) | Зеркало (1.7 Mb)
Что нового?
Добавляет списку компонентов возможность сворачивать дочерние элементы. Содержит более удобный редактор, кроме того, компилятор имеет множество других возможностей и новых функций. На сайте автора также есть дополнительные библиотеки.
Русский язык для Inno Setup Enhanced (Restools) версии 5.4.x (ansi и unicode) от vadimsva
Скачать
 
Русская справка к версии 5.5.3, автор перевода BagIra, bugron | Chm-версия
 
 

Документация, FAQ, и различные примеры для Inno Setup - Здесь можно найти различную документацию, примеры, архивы веток InnoSetup для оффлайн просмотра, и т.д.
 
Дополнительные библиотеки для Inno Setup - InnoTools Downloader, коллекция DLL файлов, распаковка архивов 7-zip и FreeArc и т.д.
 
Дополнительные утилиты для Inno Setup - сюда входят различные распаковщики, надстройки над Inno Setup, различные генераторы скриптов, утилита объединения скриптов и т.д.
 
Скрипты инсталляторов для игр - В этом разделе можно найти различные обложки и скрипты инсталляторов для игр.  
 
Скрипт для добавления ярлыков в Game Explorer (работает только в Windows 7)

Родственные темы:

 
Inno Setup плюс внешние упаковщики - обсуждение FreeArc+Inno, Precomp+Inno, 7zip+Inno и Inno+остальные внешние упаковщики.
 
Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия - обсуждение того, какими утилитами/способами лучше сжимать, чтобы получить как можно меньший размер инсталятора.

Примечание для всех участников

Правила топика посвященному Inno Setup  
 
Перед тем, как задать вопрос: Первый вариант: загрузите "версию для печати" (ссылка справа вверху, над номерами страниц) и попробуйте поискать средствами браузера (ctrl+F). Второй вариант: для экономии трафика и для более удобного поиска, скачайте оффлайн версию форума для просмотра в разделе Документация.
Большинство типовых задач уже решались, причем неоднократно!  
Пожалуйста, не захламляйте тему и используйте поиск, этим вы избавите тему от флуда!

Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 20:48 20-05-2011 | Исправлено: sjwrec, 14:38 08-09-2013
NumberI

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возможно ли создание циклов в секции Types?  
Можно ли ее заменить полностью функцией из кода? {code:gets} А не только Name: и Description: ?
 
Существует ли функция для определения количества секций в INI файле? Если нет, то как их можно подсчитать?
 
вот примерно то что я хочу сделать

Код:
 
function InitializeSetup(): Boolean;
begin
   for I := 1 to [количество секций в ini-файле] do  
begin
str:='org'+inttostr(i);
org[i] := GetIniString(str, 'org', 'Error', 'C:\временная\example.ini');
if GetIniString(str, 'ex1', 'Error', 'C:\временная\example.ini') = '1' then
    s1 :=s1 +' ' + GetIniString(str, 'org', 'Error', 'C:\временная\example.ini');
 if GetIniString(str, 'ex2', 'Error', 'C:\временная\example.ini') = '1' then
    s2 :=s2 +' ' + GetIniString(str, 'org', 'Error', 'C:\временная\example.ini');
end;
  Result := True;
end;
 

а затем в цикле вставить переменную org[i] в секцию types
[Types]
for i := 1 to [количество секций в ini-файле] do  
Name: {code:gets|org[i]}; Description: {code:gets|org[i]}

Всего записей: 52 | Зарегистр. 08-02-2011 | Отправлено: 10:33 09-09-2011 | Исправлено: NumberI, 10:35 09-09-2011
ShadowHawk



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

Цитата:
ShadowHawk  
спасибо попробую. я как раз точно знаю что у меня есть и файл и номер строчки  

Н.П.
 
Для лучшего (гибкого) функционирования можешь добавить парочку вещей:
 
Проверку на существование файла и если он существует то поместить его содержимое в массив, а если нет то массив создать соответствующей размерностью и заполнить его по дефаулту.
 Думаю будет полезно, что бы голова не болела .
 
 
Добавлено:
NumberI
 

Цитата:
[Types]  
for i := 1 to [количество секций в ini-файле] do  
Name: {code:gets|org[i]}; Description: {code:gets|org[i]}

 
По поводу твоей задачки есть соображения:
 
...
[Types]  
; переменная для цикла
#define i
 
; переменная, в которую поместим кол-во циклов
#define countSection {code:getCountSection}  
 
; создаем массив размерностью видимо по количеству секций
#dim org  countSection
 
; итак: пишем подпрограмму, которая будет делать все что нам нужно countSection раз ( и можно )
#sub AddDescription
  Name: {code:gets|org[i]}; Description: {code:gets|org[i]}
#endsub
 
; создаем цикл с вызовом нашей подпрограммы
#for {i = 0; i < countSection; i++} AddDescription
...
[code]
; твоя функция gets
function gets(Param: string): string;
begin
  ...
  Result:= ...
  ...
end;
 
; твоя функция по определению кол-ва секций
; как??? это сделать пока не знаю - возможно парсить ini файл на предмет
; есть ли в начале строки символ '['  и есть ли в конце символ ']' и все символы  
; между  ними только буквы - вот как то так -соответственно если все условия gроверки
; выполнены то мы нашли очередную section - увеличиваем Result
 
function getCountSection(Param: string): integer;
begin
  Result := 0;
  ...
  Result := Result + 1;
  ...
end;
 
возможно это велосипед и есть более правильное решение. но знатоки что-то видимо то ли в отпуске то ли заняты

Всего записей: 28 | Зарегистр. 18-08-2011 | Отправлено: 10:34 09-09-2011
NumberI

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShadowHawk #define countSection {code:getCountSection}  
 пишет [ISPP] Expression expected but opening brace ("{") found.

Всего записей: 52 | Зарегистр. 08-02-2011 | Отправлено: 15:06 09-09-2011 | Исправлено: NumberI, 15:28 09-09-2011
ShadowHawk



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NumberI
 
есть предложение!
список секций известен?
может все-таки массив и по нему пробежаться и что надо сделать?
 
Либо объясни всю проблему может (уже говорил ) есть проще и элегантней решение чем эксепшены ловить.
 

Цитата:
ShadowHawk #define countSection {code:getCountSection}  
 пишет [ISPP] Expression expected but opening brace ("{") found.

 
А здесь скорее всего надо написать функцию ну или взглянуть на нее
 
Добавлено:
NumberI
 
Вот например такая функция посчитает тебе кол-во секций (без проверки на правильность написания названия секции). Рядом надо положить tmp.ini  
 
 
Подробнее...

Всего записей: 28 | Зарегистр. 18-08-2011 | Отправлено: 16:40 09-09-2011
NumberI

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShadowHawk
#sub AddDescription
  Name: {code:gets|org[i]}; Description: {code:gets|org[i]}
#endsub
 
; создаем цикл с вызовом нашей подпрограммы
#for {i = 0; i < countSection; i++} AddDescription  
 
В org[i] индекс не присваивается и в функцию передается "org[i]", а не "org[1]", "org[2]"  и т.д.

Всего записей: 52 | Зарегистр. 08-02-2011 | Отправлено: 18:06 09-09-2011
vintage_1



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте.
Хочу представить вам свою наработку:


EXArchives.dll v.1.0b от VinTagE  
Описание:
* Это распаковка архивов.
* 1 прогресс бар показывает распаковку архивов
* 2 прогресс бар показывает обработку архивов
* Сделал плавный индикатор (2 прогресс бар) обработки архивов
* Версия EXArchives.dll v.1.0b
Автор - VinTagE
-----------
Скачать
-----------


P.S.: Прошу протестировать и если найдёте какие нибудь ошибки, сообщите мне.
Спасибо за внимание =)

Всего записей: 213 | Зарегистр. 03-04-2011 | Отправлено: 19:29 09-09-2011 | Исправлено: vintage_1, 19:37 09-09-2011
VaZz9

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, помогите решить задачу, нужно заменить при установке в уже имеющемся файле .xml рандомное значение между двумя строками (Ник)  
<Nick type="string">ТутЛюбойНик</Nick>. Как это можно реализовать. Спасибо.

Всего записей: 8 | Зарегистр. 21-07-2009 | Отправлено: 19:49 09-09-2011
R3Pa4eK



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
All
WinExec.dll
Описание:
> Библиотека для запуска приложений и ожидания их завершения.
> Распаковка архивов: 7-zip, FreeArc, srep, precomp, oggenc.
> Активная кнопка "Отмена".
> Функция InsertNextDisk.
> В следующей версиях всё запихну в одну dll
 
Автор - R3Pa4eK aka dvd4el
 
Скачать

Всего записей: 963 | Зарегистр. 15-01-2011 | Отправлено: 21:08 09-09-2011 | Исправлено: R3Pa4eK, 21:11 09-09-2011
vintage_1



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
R3Pa4eK
Благодаря мне у тебя кнопка "отмена" работает.

Всего записей: 213 | Зарегистр. 03-04-2011 | Отправлено: 21:17 09-09-2011
R3Pa4eK



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vintage_1
Да, признаю - спасибо.

Всего записей: 963 | Зарегистр. 15-01-2011 | Отправлено: 21:19 09-09-2011
Edison007007



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
R3Pa4eK
мда окончательно меня убил...
различия со скриптом от IsExc 0.7 от Volt'a...
расмотрим каждую процедуру/функцию отдельно...
[CustomMessages] {запрос диска} (разницы нет)
Поиск по маске - разницы нет.
поиск без маски - разницы нет.
распаковка ogg - различия незначительны и то из-за того что раные названия функций и в исехек есть:
type
TISCreateProcessCallback = function(): boolean;
 
распаковка pcf таже история что и с распаковкой ogg
 
PlsInsertNextDisk чуть изменена
о присутствует ZipExtract, хотя в паблике его не было, но написать 2 минуты...
различия только в том что разные функции в самой библиотеке...
Вывод наглый плагиат...
 
даже это:
ProgressBar1:=TNewProgressBar.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
ProgressBar1.Left := WizardForm.ProgressGauge.Left;
ProgressBar1.Top := WizardForm.ProgressGauge.Top;
ProgressBar1.min:=0;
ProgressBar1.Width :=WizardForm.ProgressGauge.Width;
ProgressBar1.Height := WizardForm.ProgressGauge.Height;
ProgressBar1.Parent := WizardForm.InstallingPage;
ProgressBar1.Max:= {#MAX};
end;
end;
и то скопипастил...
 
Добавлено:
vintage_1
в чем разница между  
procedure EXArcExtract(ArcArchName, ArcDestDir: String);
begin
If Cancel Then EXArchivesSource(ENP, ExpandConstant('{tmp}\arc.dll'), 'x ' + AddQuotes(ArcArchName) + ' -y -dp' + AddQuotes(ArcDestDir), EXArchivesProgress);
end;
 
и
 
procedure EXBinExtract(BinArchName, BinDestDir: String);
begin
If Cancel Then EXArchivesSource(ENP, ExpandConstant('{tmp}\arc.dll'), 'x ' + AddQuotes(BinArchName) + ' -y -dp' + AddQuotes(BinDestDir), EXArchivesProgress);
end;
 
какбэ разницы нет, только лишний код в скрипте...

Всего записей: 376 | Зарегистр. 23-01-2011 | Отправлено: 22:05 09-09-2011
vintage_1



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Edison007007
Не нравится, можешь убрать =)
Все ошибки в скрипте уберу в будущей версии.

Всего записей: 213 | Зарегистр. 03-04-2011 | Отправлено: 22:15 09-09-2011
mezi



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vintage_1
Один вопрос:
Кто им будет пользоваться кроме тебя ?
Ну может будут какие то кривые васи, но нормальные люди никогда, это какбы я гарантирую
та й в паблике достаточно качествених разпаковщиков архивов!. ИМХО

Всего записей: 343 | Зарегистр. 18-12-2010 | Отправлено: 22:22 09-09-2011
vintage_1



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mezi
А я и не заставляю им пользоватся, я просто выложил свою работу, так что не нравится пройди мимо.

Всего записей: 213 | Зарегистр. 03-04-2011 | Отправлено: 22:47 09-09-2011
mezi



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vintage_1
Вопрос остается тот же!

Всего записей: 343 | Зарегистр. 18-12-2010 | Отправлено: 22:55 09-09-2011
riperoc1



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
присоеденяюсь к mezi, ну нахрена

Всего записей: 132 | Зарегистр. 31-10-2010 | Отправлено: 11:00 10-09-2011
log1stable



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Оцените внешний вид. Чего-то не хватает, или же наоборот?
 
Ссылка

Всего записей: 146 | Зарегистр. 15-07-2011 | Отправлено: 11:36 10-09-2011
PRIZ2rak



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Подскажите пожалуйста код страницы:
 
1 стр - Содержит 3 и б. пунктов выбора (RadioButton):
  Прога1
  Прога2
  Прога3
  .........
 
2 стр - для каждой программы своя с возможностью выбора компонентов.
 
Т.е. в результате нужно получить, возможность установки только нужной программы с выбором необходимых параметров её установки.

Всего записей: 475 | Зарегистр. 20-02-2008 | Отправлено: 13:03 10-09-2011
vint56



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

Всего записей: 1277 | Зарегистр. 07-10-2008 | Отправлено: 13:46 10-09-2011
R3Pa4eK



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Протестируйте инсталлятор: http://rghost.ru/21071931

Всего записей: 963 | Зарегистр. 15-01-2011 | Отправлено: 14:17 10-09-2011
   

Страницы: 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 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
articlebot (13-10-2013 23:33): продолжение темы - №15


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru