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

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

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

Widok (29-12-2008 12:26): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Это мощное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно создавать свои страницы, используя Inno Setup Form Designer.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта.  
 
Последний релиз: 5.2.3 [10.03.2008]
История версий | скачать | все сборки || Скачать Preprocessor | все сборки
 
Русификатор от NightW0lf для версии 5.2.0
Скачать | зеркало
 
Русская справка к версиям 5.0.x, автор перевода BagIra
Скачать | зеркало || cкачать в .chm формате
 
Руководство по расширенным возможностям Inno Setup 5 (не для чайников) от Kindly
Версия 5.1 скачать || версия 5 скачать|зеркало || версия 4 скачать|зеркало || версия 3 скачать|зеркало
 
Inno Setup Extensions Knowledge Base (содержит ответы на многие вопросы)
Новая версия (Web-интерфейс) || Старая chm-версия скачать | зеркало
 
Коллекция скриптов и Сборник вопросов, собранных из этой и предыдущих частей топика.
 
Corona Skin & Check System Requirements от Victor_Dobrov
Скачать | зеркало | скриншот | описание | старая версия || InnoSetup Upgrade || Слайд-шоу
Обложка для Inno Setup. Сделает инсталлятор более симпатичным и добавляет расширения: Проверка минимальных требований. Расширенный прогрессбар. Расчёт времени до завершения распаковки. Список дисков. Слайдшоу или AVI-файл в фоновом окне. Компактный режим установки. Деинсталляция неучтённых файлов. Экран справки/скриншота. Медиаплеер и многое другое...
 
Примечание: Если необходимо использовать метод проверки внешнего файла через сумму MD5 (который описан в 5 версии руководства от Kindly) для запуска инсталлятора, то понадобится калькулятор хеша MD5, калькулятор сумм MD5, SHA-256, CRC32. Если требуется узнать, какие ключи реестра меняет та или иная программа, используйте RegShot. Чтобы растянуть фоновый рисунок на весь экран, в версии Inno Setup 5.1.10 и выше используйте этот код.

Дополнительные утилиты для Inno Setup


Мощная надстройка для Inno Setup, при помощи которой создавать свои инсталляторы становится очень просто.
 
Последний релиз: 5.2.1 [15.10.2007]
Скачать | зеркало || Русификатор | зеркало

Простой мастер создания скрипта для установки одной или нескольких игр. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации.
 

Прежнее название ScriptMaker. Удобная оболочка для облегчения написания скриптов установки для Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
 
Последний релиз: 1.0.3.1 [23.03.2008]
Скачать | обновить (нужен QuickStartPack 5.2.3)

Распаковщик установок, сделанных с помощью Inno Setup. При распаковке извлекаются  ресурсы и скрипт установки (немного усечённый). Возможно подключение к Total Commander или FAR с помощью MultiArc плагинов.
Поддерживает распаковку инсталляторов, сделанных с помощью Inno Setup начиная с версии 3.0.0-beta по 5.2.3
 
Последний релиз: 0.20 [23.05.2008] New
Скачать | Расширенная версия (с поддержкой русского языка)  

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

Объёмные скрипты или части кода заключайте в тег more, чтобы ваш вопрос в сообщении не затерялся среди множества строк прилагаемого скрипта.

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 18:16 17-06-2008 | Исправлено: equis, 17:51 06-12-2008
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sandy Ann -- в старой ветке примеры были. Подробнее...  
 
Добавлено:
boss911

Цитата:
Почему секция [Run] с препроцессором не срабатывает в том случае, если скрипт (*.iss) в момент компиляции лежал не в той папке, в которой лежат исходные файлы для компиляции?  
-- скорее всего, директивы препроцессора прописаны исходя из расчета, что файлы находятся там же где и сам скрипт. Если меняешь местоположение файлов, то естественно, надо поменять и пути в директивах и командах препроцессора.
Не видя примера, точнее сказать не могу.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 22:39 16-07-2008
Sandy Ann

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Спасибище  
А упаковать как-нибудь эти 2 файла в деинсталлятор возможно? Было бы просто офигенно.  

Всего записей: 38 | Зарегистр. 05-02-2008 | Отправлено: 23:21 16-07-2008 | Исправлено: Sandy Ann, 23:25 16-07-2008
Genri

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

Цитата:
скажите, аналог ф-ии StrToInt только для символов.  
мне надо чтобы введенное в TEdite слово присваивалось переменной
-- вопрос непонятен. Но судя по твоему предыдущему посту, тебе надо немного другое. На всякий случай - небольшой пример
 
Sandy Ann -- нет.
 
 
Добавлено:
ShamaN

Цитата:
в моем примере (если бы он работал) один раз определялся бы путь установки, а потом для каждого файла просто подставлялось бы значение
-- логично Тогда так и делай - один раз определяй путь установки, а потом этот путь подставляй для каждого файла Пример

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 23:31 16-07-2008
ShamaN



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
в твоем примере так же для каждого файла будет выполняться функция iPath. На самом деле в ней у меня чтение пути из реестра. В итоге для каждого файла будет несколько чтений реестра... а если файлов тысяча? не нормально это... неужели нельзя никак переменную (не значении функции!!!) из секции [Соde] в секцию [Setup] передать?

Всего записей: 1297 | Зарегистр. 23-09-2004 | Отправлено: 00:19 17-07-2008
Unc1e

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я уже спрашивал, но повторюсь: можно ли на странице установки свернуть окно мастера в системный трей? Нужно примерно следующее: при нажатии на кнопку "Установить" окно мастера скрывается, затем скрывается из панели задач, потом создается иконка в трее. Установка идет как бы в фоновом режиме. При наведении на иконку сплывает подсказка с текущим копируемым файлом. А при нажатии на иконку окно мастера восстанавливается. У кого есть знания, желание помочь и свободное время - жду ваших сообщений!

Всего записей: 434 | Зарегистр. 11-06-2007 | Отправлено: 00:21 17-07-2008
Genri

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

Цитата:
В итоге для каждого файла будет несколько чтений реестра
-- внимательно посмотри пример. Только один раз будут считаны данные из реестра (в процедуре CurStepChanged - в начале процесса инсталляции). Полученное значение там же присваивается переменной DestDirPath. И далее, для каждого файла действительно вызывается функция iPath. Но посмотри внимательно, что она делает? Она всего лишь возвращает сохраненное значение DestDirPath. Т.е. больше никаких чтений из реестра.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 01:14 17-07-2008
boss911



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

Цитата:
-- скорее всего, директивы препроцессора прописаны исходя из расчета, что файлы находятся там же где и сам скрипт. Если меняешь местоположение файлов, то естественно, надо поменять и пути в директивах и командах препроцессора.  
Не видя примера, точнее сказать не могу.

Уже не актуально, но на будущие пригодиться.
 

Код:
[Files]
Source: C:\Pack\Files\*; DestDir: {app}\Files; Flags: recursesubdirs createallsubdirs
 
[Run]
#define FindHandle
#define FindResult
#define Mask "Files\*.txt"
 
#sub ProcessFoundFile
#define FileName FindGetFileName(FindHandle)
Filename: {app}\RESHacker.exe; WorkingDir: {app}; Parameters: -script Files\{#FileName}; StatusMsg: {cm:ModSysFiles}
#endsub
 
#for {FindHandle = FindResult = FindFirst(Mask, 0); FindResult; FindResult = FindNext(FindHandle)} ProcessFoundFile

Ты мне и помог реализовать этот код для препроцессора.
Так вот, если открыть скрипт для компиляции не с "C:\Pack", то код препроцессора не выполняется при установке, все остальное срабатывает должным образом, даже последующие команды в секции [Run].

Всего записей: 3699 | Зарегистр. 29-01-2005 | Отправлено: 02:33 17-07-2008 | Исправлено: boss911, 02:35 17-07-2008
noiseless

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShamaN
А такой способ не проще будет?
 
[Files]  
Source: "C:\*.txt";  DestDir: {code:iPath}; Flags: ignoreversion
 
или в какую-нибудь папку все файлики положить, тогда:
 
[Files]  
Source: "C:\folder\*";  DestDir: {code:iPath}; Flags: ignoreversion  
 
 
Тем более, процедура присвоения - не такой уж ресурсоемкий процесс

Всего записей: 182 | Зарегистр. 06-02-2006 | Отправлено: 09:43 17-07-2008
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boss911 -- не совсем так. Все выполняется. В указанном примере, препроцессор ищет текстовые файлы по пути Files\*.txt от текущего (откуда запускается скрипт) - это указано в указано в #define Mask. Т.е. если скрипт в C:\Pack\test.iss то поиск файлов будет в C:\Pack\Files\*.txt. Но если скрипт в C:\test.iss, то поиск файлов будет в C:\Files\*.txt. А их там нет. Так что, как я и говорил, меняешь местоположение скрипта, меняй и относительные пути.
 
Добавлено:
noiseless -- при большом кол-ве файлов и длительной инсталляции, кроме ресурсоемкости, еще имеет значение потенциальная вероятность того, что в процессе инсталляции, будут изменены считываемые данные. В результате, файлы будут проинсталлированы по разным путям. Так что, в принципе, озабоченность ShamaN данным вопросом, вполне оправдана.
Но при нескольких тысячах файлов, запись конечно, надо делать по твоему варианту.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 10:25 17-07-2008
bull3t

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

Всего записей: 12 | Зарегистр. 14-07-2008 | Отправлено: 13:05 17-07-2008
Genri

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

Цитата:
как сделать так, чтобы это окно ввода(которое в пример), выводилось одним из последних окон в инсталляции и только при выборе определенного компонента установки.
-- в функции CreateInputQueryPage, первый параметр определяет, после какой страницы будет отображена созданная. Замени wpWelcome на то что тебе надо и все.
Для определения, выводить или нет страницу, существует функция ShouldSkipPage. В ней можно осуществлять необходимые проверки (проверка выбран или нет компонент, осуществляется функцией IsComponentSelected). Далее пример, в котором страница будет отображена только в случае, если выбран компонент help. Подробнее...  

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 14:08 17-07-2008
Cryzer



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем добрый день!
 
1) Вот кусок моего кода, выполняющегося при установке.  
 
А вот кусок кода, который выполняется при деинсталляции. Но функция IsComponentSelected не работает во втором коде... Появляется сообщение: "Runtime error (at 54:110): Внутренняя ошибка: Cannot call "ISCOMPONENTSELECTED" function during Uninstall." Мне бы хотелось, чтобы во время удаления при определённой выборке компонентов выполнялись определённые операции (как во время установки)... Что делать?
 
2) Я взял код для смены внешнего вида инсталлятора, отредактировал и получил положительный результат. Всё вроде хорошо, но смущает одна деталь: запускаю => на странице выбора компонентов среди типов (у меня их 6) не выбран не один, т.е. поле пустое. Хотя чуть ниже в самих компонентах отмечены те компоненты, которые отмечаются при выборе 1-ого типа. Как-то некрасиво... Решил проверить, почему такая фигня получается. Нашёл это место, во всём виноват "Position:=poScreenCenter". Если его убрать, то на странице компонентов в типах стоит 1-ый тип (как должно быть), а не пустое поле. Но при этом инсталлятор запускается немного не по центру... а хочется по центру Как быть?

Всего записей: 102 | Зарегистр. 22-09-2007 | Отправлено: 17:31 17-07-2008 | Исправлено: Cryzer, 17:36 17-07-2008
boss911



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

Цитата:
если скрипт в C:\Pack\test.iss то поиск файлов будет в C:\Pack\Files\*.txt.

Но если инстал компилировался с C:\Pack\test.iss, то в момент его установки файлов и самих путей по C:\Pack\Files\*.txt просто нет, все устанавливается в совсем другую директорию. Что же он там будет искать? Но в таком случае все отлично работает.
 

Цитата:
Но если скрипт в C:\test.iss, то поиск файлов будет в C:\Files\*.txt.

Я вообще не понимаю, нифига препроцессор их там будет искать, если в коде указан относительный путь #define Mask "Files\*.txt" . Или относительный путь берется от туда, где лежал скрипт в момент компиляции?
 
Я совсем запутался, если тебе не трудно, да пример скрипта, что препроцессор срабатывал, не зависимо от того, где лежит скрипт в момент компиляции.

Всего записей: 3699 | Зарегистр. 29-01-2005 | Отправлено: 19:25 17-07-2008
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cryzer
Попробуй заменить:
Position:=poScreenCenter
на:
Center

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 19:58 17-07-2008
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boss911 -- очевидно, проблема в том, что ты не понимаешь принципа работы препроцессора.
Директивы препроцессора, выполняются только! в момент компиляции скрипта. Т.е. в указанном примере, в тот момент, когда ты запускаешь скрипт на компиляцию чтобы получить екзешник, выполняется строка:
#for {FindHandle = FindResult = FindFirst(Mask, 0); FindResult; FindResult = FindNext(FindHandle)} ProcessFoundFile  
...в которой осуществляется поиск файлов, указанных в переменной Mask (в данном случае это Files\*.txt - текстовые файлы в папке Files в текущей директории). Для каждого найденного файла, выполняется процедура ProcessFoundFile. Данная процедура, добавляет в секцию [Run] скрипта строку:
Filename: {app}\RESHacker.exe; WorkingDir: {app}; Parameters: -script Files\{#FileName}; StatusMsg: {cm:ModSysFiles}
...в которой вместо {#FileName} подставляется имя найденного файла.
Если для примера предположить, что в папке Files у тебя находятся три текстовых файла (File1.txt, File2.txt и File3.txt), то в результате секция [Run] приобретет вид:
Filename: {app}\RESHacker.exe; WorkingDir: {app}; Parameters: -script Files\File1.txt; StatusMsg: {cm:ModSysFiles}
Filename: {app}\RESHacker.exe; WorkingDir: {app}; Parameters: -script Files\File2.txt; StatusMsg: {cm:ModSysFiles}
Filename: {app}\RESHacker.exe; WorkingDir: {app}; Parameters: -script Files\File3.txt; StatusMsg: {cm:ModSysFiles}
...и только после этого начнется компиляция екзешника. Абсолютно без разницы - пропишешь ты эти три строки вручную, или их пропишет препроцессор.
Будет найдено 20 файлов - будет 20 таких строк. Не будет найдено ни одного - не будет ни одной (секция [Run] останется пустой). А в момент инсталляции, когда дело дойдет до обработки секции [Run], будет выполнено столько запусков, сколько записей в секции. И если в момент компиляции не было найдено ни одного файла, то и запусков не будет. А все остальное установится как и положено. Еще раз - препроцессор работает не при инсталляции, а при компиляции.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 20:08 17-07-2008
boss911



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

Цитата:
Директивы препроцессора, выполняются только! в момент компиляции скрипта. Т.е. в указанном примере, в тот момент, когда ты запускаешь скрипт на компиляцию чтобы получить екзешник, выполняется строка:  
#for {FindHandle = FindResult = FindFirst(Mask, 0); FindResult; FindResult = FindNext(FindHandle)} ProcessFoundFile

Вот теперь я понял, я то думал, что это выполняется в момент инсталляции, идет поиск txt файлов и каждый подставляется в {#FileName}.
 
В общем я указал прямой путь к исходным файлам, теперь все работает.
 
А если в момент инсталляции, некоторые txt файлы не будут найдены, но которые были в момент компиляции, ошибок выдавать не будет?
 
Отвечаю сам: не будет.
 
Добавлено:


Раньше я задавал вопрос и с сразу ниже получил ответ. Все хорошо, так и нужно, но когда нажимаем на кнопку "Обзор", получаем диалог, где также можно редактировать путь в строке. Как сделать, чтобы и там заблокировать редактирование пути?

Всего записей: 3699 | Зарегистр. 29-01-2005 | Отправлено: 21:11 17-07-2008 | Исправлено: boss911, 22:44 17-07-2008
Sampron

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

Цитата:
Раньше я задавал вопрос и с сразу ниже получил ответ. Все хорошо, так и нужно, но когда нажимаем на кнопку "Обзор", получаем диалог, где также можно редактировать путь в строке. Как сделать, чтобы и там заблокировать редактирование пути?

Наверно никак разве что править ресурсы, можешь попробовать так

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 23:30 17-07-2008
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте почитатели Inno Setup. Сам я уже как два года изучаю данную инсталляционную систему. Совершенно случайно возник вопрос, можно ли реализовать проигрывание фоновой музыки только в тот момент когда запускается процедура копирования файлов на жесткий диск. Поясняю необходимость подобных действий: использование озвучки клика по кнопке. Если фоновая музыка (особенно высокого качества) начинает играть со страницы приветствия, то озвучка клика по кнопке не слышна, а следовательно вся этетика данного инсталла утрачивается. Искренне надеюсь на Вашу помощь!

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 02:57 18-07-2008
unnameddddd

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Парни помогите начинающему, чего хочу добится, сам пробовал ничего толком не вышло.
1 Чтобы был виден заголовок окна установки
2 Чтобы мультимидийные кнопки Игра Пауза Стоп
3 Чтобы инсталятор показывал сколько места на дисках (тут в ранних постах речь шла про S.T.A.L.K.E.R сам разобраться не смог)
4 Внизу была ссылка на сайт
5 И чтобы инсталятор все файлы находившиеся в папках оставлял их там, а не выдергивал их и не вставлял все в одну папку нарушая целостность  
6 И чтобы папка SAVE не удалялась при деинсталяции
Вот мой скрипт:
 
 
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{19A5A075-AF5F-4F36-8E7F-D09D03B1C9E6}
AppName=Корсары III (Age of Pirates: Carribean Tales)
AppVerName=Корсары 3 v1.5.0
AppPublisher=Akella Games
DisableReadyPage=no
AppPublisherURL=http://www.akella.ru/
AppSupportURL=http://www.akella.ru/
AppUpdatesURL=http://www.akella.ru/
DefaultDirName=C:\Program Files\Akella Games\Корсары 3\
WindowStartMaximized=no
WindowVisible=yes
WindowShowCaption=no
WindowResizable=no
DefaultGroupName=Akella Games\Корсары 3
WizardImageFile=D:\c.bmp
WizardSmallImageFile=D:\2.bmp
OutputDir=D:\Setup
OutputBaseFilename=setup
SetupIconFile=C:\Program Files\Smart Install Maker\Icons\Import\Icon_001.ico
Compression=lzma
; Encryption=yes
SolidCompression=yes
 
[Languages]
name: russian; MessagesFile: compiler:Languages\Russian.isl
 
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
 
[Files]
Source: "C:\sound.wav"; DestDir: "{tmp}"; Flags: dontcopy
Source: "C:\background.bmp"; DestDir: "{tmp}"; Flags: dontcopy
Source: "C:\Program Files\Inno Setup 5.22\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\config.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\ENGINE.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\engine.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\fmodex.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\Manual.pdf"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\options"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\Program.dat"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\protect.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\protect.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\protect.msg"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\Readme.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Downloads\Корсары 3\modules\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\Downloads\Корсары 3\program\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\Downloads\Корсары 3\RESOURCE\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\Downloads\Корсары 3\SAVE\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs uninsneveruninstall
 
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
[Icons]
Name: {group}\Настройка Корсары 3; Filename: {app}\Config.exe
Name: {group}\Корсары 3; Filename: {app}\ENGINE.exe
Name: {group}\{cm:UninstallProgram,Корсары 3}; Filename: {uninstallexe}
Name: {commondesktop}\Корсары 3; Filename: {app}\ENGINE.exe; Tasks: desktopicon
Name: {commonstartup}\Корсары 3; Filename: {app}\Engine.exe
 
[Run]
Filename: {app}\ENGINE.exe; Description: {cm:LaunchProgram,Корсары 3}; Flags: nowait postinstall skipifsilent
Filename: {app}\README.TXT; Description: Прочитать Readme; Flags: postinstall shellexec skipifsilent
 
[Code]
function sndPlaySound(lpszSoundName: string; uFlags: cardinal):integer;
external 'sndPlaySoundA@winmm.dll stdcall';
 
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';
 
procedure InitializeWizard();
var
    BackgroundBitmapImage: TBitmapImage;
    s:string;
    width, height:Integer;
    bitmap:TBitmap;
begin
    ExtractTemporaryFile('background.bmp');
    ExtractTemporaryFile('sound.wav');
    sndPlaySound(ExpandConstant('{tmp}\sound.wav'), $0001 or $0008);
    WizardForm.Position:=poScreenCenter;
    MainForm.BORDERSTYLE:=bsNone;
    width:=GetSystemMetrics(0);
    height:=GetSystemMetrics(1);
    MainForm.Width:=width;
    MainForm.Height:=height;
    width:=MainForm.ClientWidth;
    height:=MainForm.ClientHeight;
    s:=ExpandConstant('{tmp}')+'\background.bmp';
    BackgroundBitmapImage := TBitmapImage.Create(MainForm);
    BackgroundBitmapImage.Bitmap.LoadFromFile(s);
    BackgroundBitmapImage.Align := alClient;
    BackgroundBitmapImage.Parent := MainForm;
    BackgroundBitmapImage.Stretch:=True;
    MainForm.Visible:=True;
end;
 
[LangOptions]
LanguageName=Russian
LanguageID=$0419
LanguageCodePage=1251
DialogFontName=Tahoma
DialogFontSize=8
WelcomeFontName=Times new roman
WelcomeFontSize=14
TitleFontName=Arial
TitleFontSize=35
CopyrightFontName=Arial
CopyrightFontSize=8

Всего записей: 3 | Зарегистр. 18-07-2008 | Отправлено: 03:28 18-07-2008
nOobCrafter

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Времени доброго) Возник вопрос, почему при добавлении второй страницы, возникает ошибка типа "Type mismatch"? Вот пример
Кстати спасибо за выложенное руководство, 90% вопросов отпали)))

Всего записей: 99 | Зарегистр. 26-06-2008 | Отправлено: 13:47 18-07-2008 | Исправлено: nOobCrafter, 13:52 18-07-2008
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
Widok (29-12-2008 12:26): лимит страниц. продолжаем здесь


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru