15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Inno Setup


Данная статья является попыткой донести первоначальные знания в области использования этого инструмента для написания инсталяционной рутины и ни в коем образе не претендует на звание "продвинутой".
Inno Setup это свободная для использования программа. Ее создателем является Джордан Рассел (Jordan Russell). Впервые представлена в 1997 году. Ее можно свободно скачать.

Основные черты:
- поддерживает все 32-х битные версии Windows (95, 98, 2000, 2003, XP, Me, NT 4.0)
- создает создание одного файла exe, что значительно облегчает процесс инсталяции Вашей программы
- стандартный интерфейс Windows 2000/XP
- ориентирован на пользователя (например, полный, минимальный, пользовательский вариант)
- все инструменты для деинсталяции
- инсталирование файлов: встроенная поддержка "deflate", bzip2, 7-zip LZMA файлы сжатия. Программа может сравнивать информацию о версии файла, перемещать используемые файлы; подсчет разделенных файлов (shared); регистрировать DLL/OCX/FNT/TLB и типовые библиотеки; инсталировать шрифты
- проверяет, активны ли определенные программы
- создание ярлыков быстрого доступа (например, через старт-меню или на рабочем столе)
- осуществление записи в ini-файлы
- встроенная машина для написания скриптов на языке Pascal
- поддерживает многоязыковую инсталяцию
- инсталяция и деинсталяция по умолчанию
- весь код доступен (Borland Delphi 2.0-5.0)
- защита пароля для setup
- в случае отмены во время исполнения, все действия будут приведены в исходное состояние

Существует Newsgroup-а, созданная автором (к сожалению, только на английском языке), где, как правило, можно быстро и компетентно получить ответ.

Cамые простые и частые вопросы.

Является ли эта программа совершенно бесплатной для использования в тoм числе и коммерческого?
Программа является бесплатной. Однако на нее есть copyright, что описано в лицензии.

Поддерживает ли Inno Setup MBCS (мультибайтовые наборы знаков)?
Inno Setup 2.0.6 включает полную поддержку для MBCS. В более ранние версии последнее свойство не входит.

Поддерживает ли программа web-инсталяцию?
нет

Скрипт.

Это простой ASCII текстовый файл, пстроен на подобии INI. Скрипт разделен на секции, имена который пишутся в квадратных скобках []. Внутри секций существуют ключевые слова и указания, которые компилятор может читать и выполнять.

Комментарии.
Начинаются с точки с запятой в начале строки и могут быть помещены в любое место скрипта. Коментарии блоком не возможны, как впрочем и вынесение коментария в середину строки. Последнее допускается компилятором, но впоследтвие, при выполнение, ведет к ошибке.

Секции.
Порядок секций не имеет значения. Все они (за исключением [Setup]) являются произвольными. Ключевому слову значение присваивается при помощи знака равенства (=).

Указания состоят из одного или нескольких параметров и их опций, а также флагов (flags). Параметр же в свою очередь состоит из имени, за которым следует двоеточие (:) и значения. Параметры, опции и флаги отделяются друг от друга точкой с запятой (;).

Обзор секций:
секциязначение
[Setup]сoдержит указания по поведению инсталяционной рутины, а также, как это должно выглядеть. Ключевые слова AppName, AppVerName и DefaultDirName являются обязательными. Все остальные - по необходимости
[Files]Здесь содержатся файлы для setup
[Icons]ярлыки (иконки)
[Components]Соотношение компонентов к типу инсталяционной рутины
[Dirs]разрешает создать новые пустые папки
[INI]делает записи в INI- файлы
[InstallDelete]первое действое при инсталяции, cистаксис соответствует секции [UninstallDelete]
[Messages]разрешает специфические изменения в тексте
[Registry]делает запись в регист
[Run]выполняет другие программы после того как данные успешно были исталированы, но еще до того как будет закрыто диалоговое окно
[Tasks]разрешает дополнитекльные действия в setup
[Types]устанавливает тип setup-а
[UninstallDelete]последняя операция при деинсталяции. Таким образом папки и/или файлы будут удалены
[UninstallRun]первая операция при деинсталяции. Систаксис соответствует секции [Run]
[LangOptions]содержит информацию о языке. как правило, не используется

Inno работает внутри скрипта с различными предопределеными константами, которые, как правило, содержат пути (path). Способ написания: {имя}. Некоторые константы, такие как {app} и {group} могут/должны быть предопределены пользователем (см. пример ниже). Тот, кто сам желает определить константы, должен обратиться к припроцессеру Алекса Якимова (Alex Yackimoff).

 

константысодержаниепример
{win}путь в директорию/папку WindowsC:\Windows
{sys}путь в системную папку Windows, в частности папку System32C:\Windows\System или
C:\Windows\System32
{app}путь к собственной аппликации (программе)
{pf}путь к программной папкеC:\Programme
{cf}путь к общим даннымC:\Programme\Gemeinsame Dateien
{dao}cоответствует{cf}\Microsoft Shared\DAOC:\Programme\Gemeinsame Dateien\Microsoft Shared\DAO
{src}путь к папке инсталявионной рутины, в момент выполнения setupR:\
{group}группа программ для стартового меню 

Примеры:

Таким образом может быть написан комментарий
; -- Sample1.iss --
; Demonstrates copying 3 files and creating an icon.

Обязательная часть
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
AppCopyright=Copyright (C) 1997-2000 My Company, Inc.
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe

 

Данная секция хоть и является производной, однако используется в большиинстве случаев. В данном случае копируются три файла в папку, путь в которую записан в переменную {app}
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.hlp"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"

После написания скрипта необходимо его откомпилировать.

В этой небольшой статье я попыталась описать основные правила использования Inno Setup. Больше информации Вы можете получить на авторском сайте www.jrsoftware.org

Анастасия Маховикова

Источники:
http://www.unofactura.de/inno.htm
jrsoftware.innosetup
jrsoftware.innosetup.code
jrsoftware.innosetup.thirdparty
www.innosetup.de.vu