Inno setup шаблоны. Создание дистрибутива Windows приложения в Inno Setup

Вашему вниманию самая популярная программа для IRC-чата. С её помощью вы сможете общаться с жителем любого населенного пункта планеты Земля, имеющим доступ в Интернет и такой же клиент mIRC. Скачать бесплатно этот софт может каждый пользователь. После установки вы сможете подключиться к IRC-серверу и выбрать один из каналов. Каждый канал - это чат, который был создан по определенному критерию: регион или тема. К примеру, это может быть чат для жителей Санкт-Петербурга или для борющихся с ожирением. Пользователю также разрешается создать свой собственный чат, где он будет главным. Так можно приглашать знакомых и удалять тех, кто нарушает правила или просто не понравился.

Возможности:
  • чат и обмена файлами через DCC (XDCC);
  • поддержка нескольких серверных соединений одновременно;
  • встроенный скриптовый язык;
  • протокол Client To Client;
  • защита от вредоносного ПО;
  • доступ к файловому серверу с возможностью просмотра файлов;
  • украшение текста;
  • распознание речи и её синтез (на английском);
  • SSL и Firewall;
  • кодировка UTF-8.
Принцип работы:

IRC расшифровывается как Internet Relay Chat. Другими словами, это сеть, предназначение которой - организация коммуникации в реальном времени. Чтобы начать общаться, достаточно соединиться с сервером и присоединиться к выбранному каналу. Названия серверов и каналов будут выведены в меню. В правой части диалогового окна будет находиться список людей, которые также являются участниками данного канала, а в левой - окно сообщений. Программа позволяет также общаться с отдельным человеком тет-а-тет и открывать собственный канал. Кроме функций-серверных команд, клиент предполагает запуск скриптов и фильтрацию действий.

Плюсы:
  • умеет читать голосом сообщения;
  • позволяет стать повелителем чата;
  • большой выбор каналов.
Минусы:
  • бесплатная версия mIRC работает только 30 дней;
  • нет русского интерфейса.

Особенность этого клента для общения в том, что вести переписку можно сразу со множеством пользователей. Чат позволяет найти друзей по интересам или создать собственный клуб в mIRC. Скачать программу можно всего одним кликом. Однако голосовое чтение сообщений поддерживается пока только на английском.

Изменения в версии 7.33 Beta

1.Fixed $ini() bug that resulted in an incorrect count being returned with a particular combination of subject and key parameters.
2.Added /var -n switch to make /var treat input as plain text.
3.Fixed /loadbuf bug that skipped empty lines when loading a topic.
4.Changed HTTP routines to use POST with form parameters instead of GET with URL parameters.
5.Fixed $line() with Channels List window so that it references the current search results instead of the full list.
6.Fixed while/if loop error reporting bug.
7.Fixed /hotlink -m menu not working correctly when a menu item is selected.
8.Fixed channel central limit bug that caused invalid limit values sent by the server to be stored incorrectly.
9.Fixed channel titlebar not displaying numeric modes.
10.Fixed /timer bug when using the parameter that caused it to execute twice on reaching .
11.Extended server/history popup menu so that if you hold down either the shift or control key and click, it opens a new server window.
12.Changed /localhost -p UPnP method to use local interface address instead of 127.0.0.1.
13.Fixed on SOCKWRITE event not being triggered for UDP events when an error occurs.
14.Fixed editbox focus not being set on restored desktop windows.
15.Fixed script editor focus not being set if it is in MDI mode and you switch to a window outside of mIRC and then back to mIRC.
16.Fixed right-click popup menus in listbox windows not working on Windows 8 tablet touch screens when using press-and-hold.
17.Fixed INI file save bug that was causing a gpf if the INI file was already in use by another application.
18.Fixed full screen menubar bug that caused the menubar to be displayed incorrectly in a multi-monitor setup in some cases.
19.Added /fopen -x switch that opens a file for exclusive access. If another application is using the file, /fopen will fail.
20.Fixed /hsave to an INI file not clearing section before writing hash table items to it.
21.Changed Options/Display/Buttons option to allow "Small" or "Large". This now changes both the toolbar and switchbar size. The size is scaled based on screen resolution and DPI settings. If installed on a tablet, the large button size is chosen by default.
22.Fixed /echo -h bug that caused text not to hard-wrap.
23.Fixed $ctime() bug where "nd" values were not being recognized.
24.Updated libraries to PCRE v8.35 and OpenSSL 1.0.1g.
25.Fixed $msfile() bug when too many filenames were selected under Windows 7/8.
26.Fixed $sdir() bug that caused selected folder not to be scrolled into view when dialog is displayed under Windows 7/8.
27.Added math identifiers $atan2(y,x), $hypot(x,y), $log10(x), $sinh(x), $cosh(x), $tanh(x).
28.Fixed $onpoly() bug due to rounding errors that may have returned $true in rare cases where two lines are very close.
29.Added $intersect(x1,y1,x2,y2,x3,y3,x4,y4,method) identifier that returns the point at which two lines/rays intersect. The method parameter is optional. If not specified, two lines are compared. If specified, it can be lr, rl, rr = line/ray, ray/line, ray/ray.
30.Fixed /drawdot bug that caused it to be drawn slightly off center.
31.Added $input() "f" switch that forces the return of $no/$cancel for edit/combo boxes.
32.Fixed SSL certificate password dialog box being displayed multiple times when multiple SSL connections are in progress.
33.Added display of "Connect cancelled" message when a connection attempt/retry cycle has ended completely.
34.Added a single, standard lock/password dialog for use by all features to replace multiple older implementations.
35.Fixed SendMessage() WM_MCOMMAND bug that would have returned a successful result to the calling application even if the command had in fact failed.
36.Added support for encrypting server passwords in servers.ini. Old plain text passwords are converted to the new format.
37.Changed List Channels dialog lock password so that a hash is stored in mirc.ini instead of the actual password. The old password is converted to the new format.
38.Fixed SSL certificate password dialog box bug that, on being displayed, caused controls to be enabled even if user was currently typing in another window.
39.Added another method for detecting Wine, as a backup to the current method.
40.Extended SendMessage() to enable executing a command in the context of a remote event. During a remote event, a $eventid identifier is set to a unique value to identify the event. This can be passed to a DLL which can then pass it back to mIRC using:
SendMessage(mHwnd, WM_MCOMMAND, MAKEWPARAM(cMethod, cEventId), cIndex)
This will cause the command/evaluation to execute in the context of the remote event identified by cEventId. If cEventId is 0, this indicates a non-remote event.
41.Extended SendMessage() to return information about mIRC using SendMessage(mHwnd, WM_MCOMMAND, -1, lParam) where lParam is -1 to receive the mIRC version number and -2 to receive the cMethod options that are supported.
42.Extended SendMessage() to support cMethod value 16 which causes SendMessage() to return more useful error values instead of just 0 for failure and 1 for success. The return values are: 0 = success, 1 = failure or"d with 2 = bad mapfile name, 4 = bad mapfile size, 8 = bad eventid, 16 = bad server, 32 = bad script.
43.Fixed hotlinks display bug that affected how hotlinks were displayed in dialogs.
44.Fixed topics, modes, and several other events not including the year that the mode was set.
45.Changed About dialog to include check for update button.
46.Added installer check for limited user write access to the selected install folder when the "portable" option is enabled.
47.Fixed alias/identifier behaviour inconsistency when a recursive call is attempted which could have led to unexpected results. Both now halt the script with an error message instead.
48.Changed installer to include links to license and privacy policy.
49.Added CAP userhost-in-names support.
50.Changed CAP support so that CAP END will only be sent once the server has replied to all requests with ACK or NAK and requests have been processed.
51.Fixed timezone/daylight savings bug due to a hack around a bug in a previous version of the C runtime library.
52.Fixed all server messages, such as MOTD, not being timestamped when timestamp option is enabled.
53.Added CAP server-time and znc.in/server-time[-iso] support. Enabled automatically with a CAP request if server lists it in CAP LS. If a server message has a @time prefix with a UTC timestamp, $msgstamp will return this value.
54.Extended /echo -tN where N is the UTC value you want to use as the timestamp.
55.Added support for ircs:// secure links.
56.Improved irc/ircs:// links support in the windows registry by adding the following entries: Class\mIRCURL, Software\Clients\IM\mIRC, and Software\RegisteredApplications\mIRC.
57.Changed /timer to display seconds in /timers and in $time().delay, if seconds are specified on command line.
58.Changed /window -c to not report an error if the non-@window it is closing does not exist.
59.Fixed status/channel/query right-click popup menu bug that caused clicked target not setting $1 correctly if /remote is off.
60.Fixed an SSL threading bug that may have caused SSL connections to crash in some situations.
61.Fixed scripts editor file change monitor bug that may have caused some file change notifications to be missed.
62.Changed $ticks so that it uses GetTickCount64() if it is available.
63.Fixed /list command bug that caused the channels list to be saved to the wrong filename in the channels folder if you were connected to multiple servers.
64.Fixed $read()/play random number bias.
65.Changed $shortfn()/$longfn() to use more reliable method.
66.Fixed $input() display bug with long strings.

Программа mirc представляет собой IRC клиент. IRC - это Internet Relay Chat. То есть сеть, которая предназначенная специально для общения в реальном времени.

Данный софт является, пожалуй, одной из самых известных программ в своем роде. Для того чтобы начать общение необходимо выполнить минимум действий. Все что нужно для начала общения, так это соединиться с необходимым сервером и присоединиться к определённому каналу. Названия большинства популярных серверов и некоторых распространённых каналов уже заложены в программу mIRC. По умолчанию при запуске выбор необходимого сервера происходит случайным образом. После чего просто выбираем нужный нам канал и начинаем общаться. Интерфейс очень прост и удобен: в правой части окна находится список присутствующих онлайн в канале людей, а в левой части отображаются сообщения. В данной версии вам доступно создание собственного канала (вы там являетесь администратором канала) или вы можете общаться с выбранным отдельным человеком в уже созданном канале. Помимо основных инструментов, фактически представляющих оболочку серверных команд, mIRC даёт возможность использовать большое количество различных сторонних функций. Запуск script-ов, соединение с сервером, а так же фильтрация действий flooders (фильтр людей-спамеров),- всё это доступно в данной утилите. Софт позволяет вести чат с большим количеством разных корреспондентов, подключенных к сети IRC-серверов. Приятно удивит умение программы читать сообщения и воспроизводить голосом события. Единственное и читает, и сообщает mirc только по-английски.

Ключевые особенности и функции
  • доработан интерфейс;
  • расширенна база популярных серверов;
  • устранены ошибки;
  • поддержка сторонних скриптов;
  • фильтрация людей забивающих канал;
  • умение читать сообщения.

Бесплатный IRC клиент для комфортного общения в сети IRC. Имеет удобный, полностью изменяемый интерфейс и развитый язык скриптинга.

Для того, чтобы попасть в IRC-сеть, нужно иметь специальную программу-клиент. И хотя наибольшей популярностью пользуется клиент mIRC, я предлагаю использовать KVIrc. И на то есть объективные причины. Сравним эти программы.

Сравнение бесплатных IRC-клиентов KVirc и mIRC
Функции KVirc mIRC
Тип лицензии GPLv2 (бесплатная) Коммерческая
Поддержка тем интерфейса + -
Конфигурирование (редактирование, добавление, удаление) панелей инструментов + -
Всплывающее окно, извещающее о новых приватных сообщениях и т.д. + -
Поддержка аватаров пользователей + -
Возможность задать в настройках различные ники (и др. информацию) для различных серверов + -
Поддержка SSL + -
Поддержка шифрования сообщений + -
Поддержка DCC: VOICE, RSEND, GET, RECV + не полная
Кроссплатформенность + -
Интеграция в медиа проигрыватели встроена, в Winamp встроенной нет

И это еще далеко не все отличия. Стоит добавить еще то, что интерфейс KVIrc более продуман, что позволяет быстрее разобраться что, где, куда.

Установка KVirc

Давайте установим программу и увидим все своими глазами. В процессе установки нам будет помогать «Мастер настройки».

1. Первым делом он спросит, на каком языке нам удобнее работать. Выбираем "Russian".

2. Затем нас попросят принять лицензионное соглашение. Здесь просто нажимаем "Принимаю".

3. В следующем окне можно выбрать устанавливаемые компоненты. Но лучше всё оставить как есть и просто нажать "Далее".

4. На последнем шаге можно выбрать папку для установки программы. Здесь тоже лучше оставить папку по умолчанию. Нажимаем "Установить".

По окончании установки нажимаем "Запустить". Но это ещё не всё.

Предварительная настройка

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

Это нужно на случай, если Вы захотите иметь портативную версию программы, чтобы подключаться к IRC с разных компьютеров.

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

Затем можно выбрать тему оформления или оставить вариант по умолчанию.

В следующем окне стоит галочка "Сделать KVIrc IRC клиентом по умолчанию". Если Вы не планируете пользоваться другими клиентами, то можно её оставить. Затем нажимаем "Готово". Настройка закончена.

Соединение с IRC-сервером

Наконец откроется главное окно KVIrc с окошком «Список серверов» поверх него.

Для русскоязычных пользователей лучше всего подойдёт сеть Rusnet. Нажав на стрелочку слева от неё мы увидим список серверов в этой сети.

В дальнейшем, в это же окошко можно попасть, нажав на панели инструментов кнопку "Подключиться к".

А пока, выбираем понравившийся сервер и нажимаем синюю кнопку "Подключится сейчас" и "Ок" (чтобы закрыть окно выбора сервера).

Брандмауэр Windows может выдать окошко с предупреждением о блокировке программы. Но поскольку программа нам знакома, нажимаем "Разрешить доступ" и оказываемся в чат-комнате.

Как общаться с помощью KVirc

Спустя несколько секунд в главном окне программы появится:

  • Слева - список подключенных сетей;
  • По центру - непосредственно сам чат, где будут появляться как системные сообщения, так и сообщения пользователей;
  • Справа - список посетителей данной комнаты;
  • Снизу - панель ввода сообщений.

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

Настройки KVirc

Теперь осталось пробежаться по настройкам программы. Здесь у нас три основных окна. Они доступны по трём соответствующим кнопкам в панели управления.

1. Конфигурация идентификации. Именно этот раздел мы заполняли при первом входе в программу. Но здесь же можно дополнить свой профиль к примеру, аватаркой и другими подробностями.

2. Общие настройки KVirc

Здесь собраны все настройки, начиная от интерфейса и заканчивая подключением и выполнением дополнительных скриптов.

3. Третья кнопка отвечает за визуальную составляющую программы.

Выводы

По-моему, на сегодняшний день это самый удобный клиент IRC (особенно среди бесплатных). С его помощью можно обрести новых друзей на просторах Интернета или пообщаться со старыми.

Также немалым плюсом KVIrc является возможность обмениваться файлами и поддерживать голосовую связь. Для этого достаточно нажать на нике собеседника правой кнопкой мыши и выбрать параметры передачи файлов или качества голосовой связи.

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

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

Для удобства установки ваших программ на компьютеры пользователей вам понадобится создание дистрибутива. Сегодня я хочу рассказать об очень мощном и бесплатном инструменте для создания дистрибутивов для ОС Windows – Inno Setup.

Об Inno Setup

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

Вот ключевые возможности инсталлятора:

      • Поддержка всех версий Windows , начиная с Windows 2000 , включая: Windows 8 , Windows Server 2012 , Windows 7 , Windows Server 2008 R2 , Windows Vista , Windows Server 2008 , Windows XP , Windows Server 2003 и Windows 2000 . При этом никакие пакеты обновлений не требуются.
      • Обширная поддержка для установки 64-битных приложений на 64-битные версии Windows . Поддержка архитектур x64 and Itanium (если используется Windows Server 2003 на Itanium архитектуре, то требуется пакет обновлений 1 или более поздний для установки 64-битного режима работы).
      • Возможность создания дистрибутива, состоящего из одного единственного EXE-файла для удобного распространения в Интернете. Разбиение на диски также поддерживается.
      • Стандартный интерфейс мастера установки в стиле Windows 2000/XP .
      • Настраиваемые типы установки, такие как Полная , Компактная , Выборочная .
      • Широкие возможности деинсталляции.
      • Установка файлов: Включает интегрированную поддержку сжатия deflate , bzip2 и 7-Zip LZMA/LZMA2 . Инсталлятор может сравнивать версии файлов, заменять используемые файлы, использовать подсчёт общих файлов, регистрировать DLL/OCX и библиотеки типов и устанавливать шрифты .
      • Создание ярлыков в любом месте, включая меню Пуск и рабочий стол .
      • Создание элементов реестра и INI-файлов .
      • Выполнение других программ до, во время и после установки.
      • Создание многоязычных дистрибутивов , включая языки с написанием слева направо.
      • Создание запароленных и зашифрованных дистрибутивов .
      • Поддержка цифровой подписи при установке и удалении.
      • Скрытая установка и удаление.
      • Поддержка Unicode .
      • Встроенный препроцессор для дополнительной настройки во время компиляции.
      • Встроенный обработчик скриптов Pascal для выполнения дополнительных действий во время установки и удаления.
      • Свободный исходный код (Borland Delphi 2.0-5.0 и 2009 ).

Большим плюсом Inno Setup является то, что его можно использовать абсолютно бесплатно даже для коммерческого использования. Хотя в качестве благодарности или для поддержки инсталлятора вы можете сделать пожертвование . Там же есть список всех, кто пожертвовал от 100 долларов.

Вот как выглядит стартовая страница стандартного мастера установки дистрибутива созданного с помощью Inno Setup .

О создание дистрибутива в Inno Setup

Создание дистрибутива с помощью Inno Setup происходит следующим образом:

1. Сначала вы создаёте скрипт Inno Setup . Скрипт Inno Setup – это текстовый файл с расширением .iss , который содержит свойства дистрибутива и набор производимых действий при установке и удалении. Скрипт может быть создан с помощью стандартного редактора Inno Setup (см. картинку) или с помощью одного из сторонних редакторов, таких как Inno Script Studio или ISTool . В этой статье я рассмотрю использование только стандартного редактора Inno Setup .

2. Затем вы компилируете скрипт, получая при этом дистрибутив.
3. После компиляции вы можете тестировать и отлаживать полученный дистрибутив, выполняя инсталляцию и деинсталляцию.

Установка Inno Setup

Чтобы создавать дистрибутивы с помощью Inno Setup , достаточно установить компилятор Inno Setup к себе на компьютер. Дистрибутив можно скачать . Ссылку на загрузку последней стабильной версии вы можете найти в секции Stable Release . На момент написания статьи последняя версия Inno Setup была 5.5.5 , см. картинку. Чтобы скачать дистрибутив, нажмите на ссылку «Random site » напротив версии с поддержкой Unicode (файл isetup-5.5.5-unicode.exe ) или без неё (ANSI версия – файл isetup-5.5.5.exe ). Для избегания проблем с отображением кириллицы лучше сразу использовать Unicode -вариант Inno Setup .

Если вы собираетесь шифровать свой будущий дистрибутив, то модуль для шифрования ISCrypt.dll вам нужно скачать отдельно в секции Encryption Module , см. картинку (ниже вы видите ссылку на исходные коды этого модуля – ISCrypt.zip ).

На этой же странице в секции QuickStart Pack вы можете найти ссылку на дистрибутивы ispack-5.5.5.exe и ispack-5.5.5-unicode.exe для установки Inno Setup вместе с Inno Script Studio , см. картинку. Inno Script Studio – это разработка сторонней компании (Kymoto Solutions ), которая предлагает вам свой удобный пользовательский интерфейс и предоставляет возможность отладки вашего инсталлятора во время выполнения. Также, этот дистрибутив предложит скачать и установить модуль шифрования ISCrypt.dll автоматически.

Кроме всего перечисленного, на странице загрузки есть секции Beta Release , для загрузки бета версий Inno Setu p, и , для загрузки исходных кодов, на которых я не буду заострять внимание.

Если вы собираетесь пользоваться более продвинутыми редакторами скрипта Inno Setup , то вам также будет интересна страница Inno Setup Third-Party Files со списком разработок сторонних компаний. Вот какие сторонние разработки мы можем использовать совместно с Inno Setup :

      • Inno Script Studio – пользовательский интерфейс и отладчик. Устанавливается с помощью дистрибутива QuickStart Pack (см. выше) или отдельным дистрибутивом, который вы можете скачать с сайта разработчика. Есть русификация.

      • Visual & Installer - платный плагин для Visual Studio (поддерживаются Visual Studio 2005 , 2008 , 2010 , 2012 и 2013 ) для создания дистрибутивов с помощью Inno Setup . Также Visual & Installer содержит мастер Graphical Installer Wizard , позволяющий создавать тематически оформленные дистрибутивы (см. примеры ).

    • Inno Download Plugin – библиотека и скрипт Inno Setup , дающие возможность скачивать файлы в процессе установки вашего дистрибутива. Есть поддержка русского языка. Поддерживаются протоколы FTP , HTTP и HTTPS .

      • InnoTools Downloader – ещё один вариант, похожий на Inno Download Plugin , тоже для загрузки файлов во время установки. Но здесь нет русификатора, и поддерживаются только FTP и HTTP .
      • VCL Styles for Inno Setup / ISSkin / Graphical Installer (последний инструмент платный) – инструменты для изменения оформления мастера установки вашего дистрибутива.

      • InnoScript – автоматически создаёт файл скрипта Inno Setup (.iss ) по файлу проекта Visual Basic (.vbp или .vbproj ). Есть русификация.

      • – создаёт дистрибутив для проекта Visual Basic из среды разработки Visual Basic 6.0 .

      • – позволяет по файлу Delphi проекта (.dpr ) или по файлу проекта библиотеки Delphi (.dpk ) создать список зависимостей необходимый для создания дистрибутива. С проектом Delphi XE3 эта утилита у меня отказалась работать.
      • Inno Setup Script #Includes – библиотека функций, которые вы можете использовать при установке. Список функций можно посмотреть .
      • Inno Setup Easy Translator – редактор языковых файлов Inno Setup (.isl ). Этот сайт не работает с 2013 года, но расстраиваться не нужно, ведь вы можете легко создавать и редактировать языковые файлы в любом текстовом редакторе.
      • UninsHs – расширение, позволяющее добавить поддержку «Repair/Modify/Remove » в ваши приложения.

Ещё в этом списке, почему то нет ещё некоторых известных разработок (список обновлён 13.04.2015 ):

      • – пользовательский интерфейс для работы со скриптом Inno Setup . Эта программа очень похожа на Inno Script Studio . Если поискать, то можно найти русификацию, см. картинку.

      • InnoIDE – ещё один пользовательский интерфейс для работы со скриптом Inno Setup . Сайт InnoIDE перестал существовать примерно в августе 2012 года (www.innoide.org), поэтому использовать эту разработку не имеет смысла. Но сохранился архив сайта, который можно посмотреть . Там же можно скачать дистрибутив. Русификацию для InnoIDE можно найти в Интернете.

      • InnoSetup Script Joiner – утилита объединяющая несколько скриптов Inno Setup в один.
      • (Inno Setup Unpacker ) - распаковщик дистрибутивов созданных с помощью Inno Setup . Консольное приложение.
      • InnoExtractor – ещё один распаковщик, но имеющий пользовательский интерфейс. Есть русификация. С моим зашифрованным тестовым дистрибутивом справился на-отлично (см. картинку). Как видите, достаёт абсолютно все файлы, в том числе и файлы используемые инсталлятором, и даже файл скрипта Inno Setup.

Собственно, после того как вы определились с необходимым функционалом, вы можете начинать установку. Здесь я рассмотрю лишь установку Inno Setup + Inno Script Studio с помощью пакета QuickStart Pack (файл ispack-5.5.5-unicode.exe ). Хотя подробно расписывать все шаги нет смысла, остановлюсь лишь на некоторых. Галочка «Download and install Inno Script Studio » должна стоять, если вы хотите установить Inno Script Studio , галочка «Install Inno Setup Preprocessor » - чтобы установить препроцессор, галочка «Download and install encryption support » - чтобы установить модуль ISCrypt.dll для шифрования дистрибутива.

Первый запуск Inno Setup Compiler

Единственное окно программы Inno Setup – это окно компилятора. Компилятор запускается из меню «Пуск». При первом запуске вы увидите приглашение предлагающее создать пустой скрипт, запустить мастер создания скрипта или открыть примеры или последние использованные файлы.

Если у вас нет опыта общения с Inno Setup , то примеры будут кстати. Давайте откроем какой-нибудь пример, нажмите кнопку «OK» и выберите один из примеров. После того как пример открылся вы можете оценить, как выглядит простой скрипт Inno Setup . Также обратите внимание, что интерфейс компилятора очень прост и весь скрипт вам нужно будет писать вручную. В вашем распоряжении здесь будет только справка и примеры.

Использование мастера для создания скрипта Inno Setup

Создавать новый скрипт Inno Setup вы можете с чистого листа или можете воспользоваться мастером создания скрипта. Для примера я сделаю дистрибутив для установки программы MyProg.exe , которая находится в папке с примерами (устанавливается вместе с Inno Setup ). При запуске программа выдаёт два окошка и завершается.

Чтобы вызвать окно мастера создания скрипта, щёлкните по пункту меню «File -> New » или в окне приветствия выберите опцию «Create a new script file using the Scrip Wizard » и нажмите «OK ». Первый экран мастера будет с приветствием. Нажмите здесь «Next > ».

На втором экране введите название приложения (Application name ), версию приложения (Application version ), издателя приложения (Application publisher ) и адрес сайта приложения (Application website ). Жирным шрифтом в мастере отмечены обязательные поля, а остальные можно сделать пустыми.

На следующем шаге вы выбираете папку для своего приложения. По умолчанию, как видно по картинке, это папка с тем же именем, что и имя приложения, и она будет создана внутри папки Program Files . Галочка «Allow user to change the application folder » позволит пользователю поменять папку в процессе установки. А при установке галки «The Application doesn’t need a folder » папка приложения вообще не будет создаваться.

Если из выпадающего списка «Application destination base folder » вы выберете «(Custom) », то в поле, находящемся чуть ниже, можно будет задать произвольный путь. Например, чтобы папка вашего приложения была на системном диске, нужно указать «{sd} ».

Как видите, для указания системного диска я указал «{sd} » вместо «C: », ведь на разных компьютерах системный диск может быть разным. Вообще в Inno Setup вы будете очень часто использовать константы типа «{sd} ». Все константы окружены фигурными скобками и их очень много. Вот полный список констант с кратким описанием (полное описание смотрите в разделе «Constants » в справке):

Константы директорий:

      • {app} – директория приложения, например, «C:\Porgram Files\Моя Программа».
      • {win} – директория Windows, например, «C:\WINDOWS».
      • {sys} – директория System32, например, «C:\WINDOWS\SYSTEM».
      • {src} – директория, в которой находятся файлы дистрибутива (это временная папка с распакованными файлами дистрибутива).
      • {sd} – системный диск, например, «C:».
      • {pf} – директория приложений, например, «C:\Program Files (x86)» (в 64-битном режиме – это будет папка для 64-битных приложений). В 32-битном режиме эта константа эквивалентна константе {pf32} , а в 64-битном – {pf64} .
      • {cf} – папка общих файлов, например, «C:\Program Files (x86)\Common Files». В 32-битном режиме эта константа эквивалентна константе {cf32} , а в 64-битном – {cf64} .
      • {tmp} – временная папка, используемая при инсталляции или деинсталляции (имя папки будет в формате «C:\WINDOWS\TEMP\IS-xxxxx.tmp»).
      • {fonts} – папка шрифтов.
      • {dotnet11} – корневая папка.NET Framework 1.0.
      • {dotnet20} – корневая папка.NET Framework 2.0. В 32-битном режиме эта константа эквивалентна константе {dotnet2032} , а в 64-битном – {dotnet2064} .
      • {dotnet40} – корневая папка.NET Framework 4.0. В 32-битном режиме эта константа эквивалентна константе {dotnet4032} , а в 64-битном – {dotnet4064} .

Константы папок окружения:

      • {group} – путь к папке меню «Пуск», доступной для всех пользователей.
      • {localappdata} – путь к локальной (без роуминга) папке Application Data.
      • {sendto} – путь к папке пользователя Send To.
      • {userappdata} и {commonappdata} – путь к папке Application Data.
      • {usercf} – путь к папке пользователя Common Files (работает только для Windows 7 и последующих версий, для старых версий Windows эта константа будет приравнена к {localappdata}\Programs\Common).
      • {userdesktop} и {commondesktop} * - путь к папке рабочего стола.
      • {userdocs} и {commondocs} – путь к папке «Мои документы» (My Documents).
      • {userfavorites} и {commonfavorites} * - путь к папке «Избранное» (Favorites).
      • {userpf} – путь к папке пользователя Program Files (работает только для Windows 7 и последующих версий, для старых версий Windows эта константа будет приравнена к {localappdata}\Programs).
      • {userprograms} и {commonprograms} * - путь к папке «Все программы» (Programs) в меню «Пуск».
      • {userstartmenu} и {commonstartmenu} * - путь к верхнему уровню меню «Пуск».
      • {userstartup} и {commonstartup} * - путь к папке «Автозагрузка» (Startup) в меню «Пуск».
      • {usertemplates} и {commontemplates} * - путь к папке «Шаблоны» (Templates).

* = константы «common» приравниваются к константам «user», если пользователю не хватает административных привилегий или инструкция PrivilegesRequired установлена в lowest.

Другие константы:

      • {\} – используется в тех случаях, когда в конце пути нужно установить слеш, например, {app}{\}. В противном случае Inno Setup уберёт последний слеш.
      • {%NAME|DefaultValue} – значение переменной окружения, где NAME – имя переменной, DefaultValue – строка, которую нужно использовать, если переменной нет. DefaultValue – использовать необязательно. Примеры: {%COMSPEC} или {%PROMPT|$P$G}. Если в строке используются символы «,», «|», «}» или «%», то вместо них нужно писать «%2c», «%7c», «%7d» и «%25», соответственно.
      • {cmd} – полный путь к консоли, например, Windows\System32\cmd.exe (переменная окружения COMSPEC не используется для раскрытия этой константы).
      • {computername} – имя компьютера, на котором выполняется инсталляция или деинсталляция (значение возвращаемое функцией GetComputerName).
      • {drive:Path} – получает букву диска с двоеточием из произвольного пути. Если указан UNC-путь, то возвращает сервер и папку, например, \\SERVER\SHARE. Здесь также, чтобы написать символы «,», «|», «}» или «%», нужно писать «%2c», «%7c», «%7d» и «%25», соответственно. Вот примеры: {drive:{src}}, {drive:c:\path\file} или {drive:\\server\share\path\file}.
      • {groupname} – имя папки в меню «Пуск» для ваших пунктов меню, которую выбрал пользователь при инсталляции. В отличии от константы {group} возвращает только имя, а не полный путь.
      • {hwnd} – идентификатор фонового окна инсталлятора.
      • {wizardhwnd} – идентификатор окна мастера инсталлятора или 0, если идентификатор недоступен.
      • {ini:Filename,Section,Key|DefaultValue} – значение из INI-файла, где Filename – это имя INI-файла, Section – имя секции в INI-файле, Key – имя ключа в INI-файле, DefaultValue – строка которую нужно использовать, если указанный ключ не найден. Здесь также, чтобы написать символы «,», «|», «}» или «%», нужно писать «%2c», «%7c», «%7d» и «%25», соответственно. Пример: {ini:{win}\MyProg.ini,Settings,Path|{pf}\My Program}.
      • {language} – внутреннее имя выбранного языка.
      • {cm:MessageName} и {cm:MessageName,Arguments} – сообщение на текущем языке, где MessageName – имя сообщения, Arguments – аргументы для сообщения разделённые запятыми. Здесь также, чтобы написать символы «,», «|», «}» или «%», нужно писать «%2c», «%7c», «%7d» и «%25», соответственно. Пример: {cm:LaunchProgram,Inno Setup}.
      • {reg:HKxx\SubkeyName,ValueName|DefaultValue} – строка из реестра, где HKxx – корневой ключ реестра, SubkeyName – путь к нужному ключу, ValueName – имя значения (или пусто, если нужно считать значение по умолчанию для ключа), DefaultValue – строка которую нужно использовать, если указанного значения нет или значение не строка (REG_SZ или REG_EXPAND_SZ). Здесь также, чтобы написать символы «,», «|», «}» или «%», нужно писать «%2c», «%7c», «%7d» и «%25», соответственно. Пример: {reg:HKLM\Software\My Program,Path|{pf}\My Program}.
      • {param:ParamName|DefaultValue} – параметр переданный инсталлятору в командной строке, где ParamName – имя параметра, DefaultValue - строка которую нужно использовать, если указанный параметр не найден. Здесь чтобы написать символы «,», «|», «}» или «%», нужно писать «%2c», «%7c», «%7d» и «%25», соответственно. Пример: {param:Path|{pf}\My Program}.
      • {srcexe} – полный путь к инсталлятору, например, C:\SETUP.EXE.
      • {uninstallexe} – полный путь к деинсталлятору, созданному инсталлятором, например, C:\Program Files\My Program\unins000.exe. Эта константа обычно используется для создания ярлыка для удаления программы в секции скрипта Inoo Setup. Константа действительна, только если инструкция Uninstallable установлена в yes.
      • {sysuserinfoname} , {sysuserinfoorg} – имя и организация, соответственно, на которые зарегистрирована Windows. Эта информация считывается из реестра.
      • {userinfoname} , {userinfoorg} , {userinfoserial} – имя, организация и серийный номер, соответственно, указанные пользователем на странице «Информация о пользователе» в мастере инсталлятора (которая может быть включена с помощью инструкции UserInfoPage). Обычно эта информация используется для записи в реестр или INI для дальнейшего использования.
      • {username} – имя пользователя запустившего инсталлятор или деинсталлятор (используется функция GetUserName).
      • {log} – имя файла журнала или пустая строка, если журналирование не включено.

Следующий шаг мастера создания скрипта Inno Setup позволяет добавить файлы вашего приложения.

В самом верхнем поле выбирается основной исполняемый файл. Если вы установите галку «Allow user to start the application after Setup has finished », то пользователь увидит предложение запустить приложение после установки. Если у вашего дистрибутива нет исполняемого файла, то вы можете установить галку «The application doesn’t have a main executable file ». Ниже идёт список файлов для вашего дистрибутива. Здесь можно добавлять отдельные файлы (кнопка «Add file(s)… ») или целые папки (кнопка «Add folder… »). При добавлении папки вы увидите дополнительный вопрос, включать подпапки или нет.

После добавления папок и файлов в список вы сможете редактировать каждый элемент (кнопка «Edit… ») или удалить его (кнопка «Remove »). В окне редактирования вы сможете поменять многие параметры: нужно ли рекурсивно включать подпапки (галка «Recurse subfolders »), нужно ли включать пустые папки (галка «Include empty subfolders »), базовая папка назначения (поля «Destination base folder ») и папка внутри базовой папки назначения («Destination subfolder »).

Мы для примера добавим только файл справки.

Следующий шаг мастера – это выбор создаваемых иконок. В поле «Application Start Menu folder name » задаётся имя группы в меню «Пуск». Если вы установите галку «Allow user to change the Start Menu folder name », то пользователь сможет поменять имя папки во время установки, а если вы установите галку «Allow user to disable Start Menu folder creation », то пользователь сможет вообще отключить создание этой папки в меню «Пуск». Установите галку «Create an Internet shortcut in the Start Menu folder » и «Create an Uninstall icon in the Start Menu folder » чтобы инсталлятор создал ярлыки внутри группы, соответственно, для открытия вашего сайта и для удаления вашего приложения. Галочки «Allow user to create a desktop icon » и «Allow user to create a Quick Launch icon » позволят пользователю создать ярлыки на рабочем столе и в группе быстрого запуска. Я поставлю все галочки.

На следующем шаге задаются файлы лицензии (License file ) и файлы с информацией, которые будут показаны до и после установки. Если вы указали файл лицензии, то при инсталляции, пользователь должен будет согласиться с лицензией. Поддерживаются файлы .txt и .rtf . Я укажу файлы license.txt и Readme.txt из папки с примерами.

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

На следующем шаге задаются параметры для компилятора Inno Setup . В поле «Custom compiler output folder » задаётся путь к папке, в которую компилятор Inno Setup будет сохранять созданный дистрибутив. Если в этом поле пусто, то дистрибутив будет создаваться в той же папке, что и файл .iss . В поле «Compiler output base file name » задаётся базовое имя для файла или файлов дистрибутива. Например, если у вас задано имя «setup », то при создании дистрибутива, состоящего из одного файла, вы получите файл setup.exe . В поле «Custom Setup icon file » вы можете указать имя файла иконки для будущего дистрибутива. Если здесь ничего не указано, то будет использоваться стандартная иконка. В последнем поле «Setup Password » вы можете указать пароль, который пользователь должен будет указать при инсталляции. Если установлена галка «Use the password to encrypt the application files », то с помощью указанного пароля будут зашифрованы файлы, находящиеся в дистрибутиве. Я для примера заполню все поля по-своему.

Следующий шаг оповещает вас о том, что обнаружен препроцессор Inno Setup и предлагает использовать директивы #define для упрощения вашего скрипта. Если вы хотите использовать директиву #define , оставьте галочку «Yes, use #define compiler directives ». Если галочка не установлена, то, в дальнейшем, вы сможете добавить директивы #define в свой скрипт вручную.

И наконец-то появился последний шаг, где мы просто нажимаем на кнопку «Finish ».

После этого компилятор сразу хочет скомпилировать наш скрипт. Давайте согласимся и нажмём кнопку «Да ».

После этого компилятор предупредит нас, что скрипт не сохранён и предложит сделать это.

Давайте согласимся (нажмём «Да ») и сохраним скрипт. После сохранения скрипт скомпилировался и готовый дистрибутив, в примере это файл my-setup.exe , создался в папке, которую я указал в мастере на шаге «Compiler Settings ». После компиляции вы можете посмотреть, как она прошла на панели «Compiler Output » внизу окна компилятора, см. картинку.

Как видите всё просто. Теперь сразу протестируем готовый дистрибутив. Щёлкните по пункту меню «Run -> Run », чтобы запустить установку программы.

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

Отладка дистрибутива в Inno Setup

Для отладки вашего дистрибутива, откройте скрипт .iss и щёлкните по пункту меню «Run -> Run », чтобы запустить установку программы. После этого вы сможете отслеживать внутренние процессы во время инсталляции в окне «Debug Output », сможете ставить точки останова на нужных строках, см. картинку.

Чтобы проверить значение константы, во время отладки, щёлкните по пункту меню «Run -> Evaluate Constant… » и в поднявшемся диалоге укажите имя константы (см. картинку) и нажмите «ОК ».

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

Чтобы отладить деинсталляцию, щёлкните по пункту меню «Run -> Target Uninstall », а затем «Run -> Run ». А для возврата обратно к инсталляции, щёлкните по пункту «Run -> Target Setup ».

Структура скрипта Inno Setup

Скрипты в Inno Setup разбиты на секции. Имя каждой секции заключено в квадратные скобки. Внутри каждой секции содержатся специфические для этой секции элементы. Для удобства вы можете делать несколько секций с одинаковым именем. Такие секции будут восприниматься как одна. Вот пример:

[ Setup ] AppName =My Program [ Files ] Source : "MYPROG.EXE" ; DestDir : "{app}"

Вы можете комментировать строки, чтобы их игнорировал компилятор, установкой вначале точки с запятой.

В скрипте поддерживается C-подобная директива #include , заставляющая компилятор втягивать строки из указанного произвольного текстового файла, в то место где эта директива стоит. Вот синтаксис:

#include "filename.txt"

С помощью директивы #preproc вы можете указать, какой препроцессор следует использовать: встроенный, поддерживающий только директиву #include , или Inno Setup Preprocessor (ISPP), который поддерживает очень много директив и функций. По умолчанию в скриптах используется препроцессор ISPP, если он установлен, а в файлах .isl используется встроенный препроцессор. Вот синтаксис:

#preproc builtin #preproc ispp

Секции скрипта Inno Setup

Приведу здесь полный список всех секций Inno Setup с кратким описанием. Полное описание секций и список элементов секций можно найти в справке в разделе «Setup Script Sections ».

– эта секция содержит глобальные настройки, используемые при инсталляции и деинсталляции. Пример:

[ Setup ] AppName =My Program AppVersion =1.5 DefaultDirName ={ pf } \My Program DefaultGroupName =My Program

– необязательная секция, определяющая варианты установки (Полная /Компактная /Выборочная ), которые будут отображаться на странице выбора компонентов для установки. Пример:

[ Types ] Name : "full" ; Description : "Full installation" Name : "compact" ; Description : "Compact installation" Name : "custom" ; Description : "Custom installation" ; Flags : iscustom

– необязательная секция, определяющая компоненты, которые будут отображаться на странице выбора компонентов для установки. Пример:

[ Components ] Name : "main" ; Description : "Main Files" ; Types : full compact custom; Flags : fixed Name : "help" ; Description : "Help Files" ; Types : full Name : "help\english" ; Description : "English" ; Types : full Name : "help\dutch" ; Description : "Dutch" ; Types : full

– необязательная секция, для создания дополнительных заданий, выполняемых при инсталляции. Пользователь будет видеть задания в виде переключателей и сможет выбирать выполнять то или иное задание или нет. Пример:

[ Tasks ] Name : desktopicon; Description : "Create a &desktop icon" ; GroupDescription : "Additional icons:" ; Components : main Name : desktopicon\common; Description : "For all users" ; GroupDescription : "Additional icons:" ; Components : main; Flags : exclusive Name : desktopicon\user; Description : "For the current user only" ; GroupDescription : "Additional icons:" ; Components : main; Flags : exclusive unchecked Name : quicklaunchicon; Description : "Create a &Quick Launch icon" ; GroupDescription : "Additional icons:" ; Components : main; Flags : unchecked Name : associate; Description : "&Associate files" ; GroupDescription : "Other tasks:" ; Flags : unchecked

– эта необязательная секция определяет, какие дополнительные папки, кроме папки приложения, нужно создавать.

[ Dirs ] Name : "{app}\data" Name : "{app}\bin"

– необязательная секция, определяющая, какие файлы будут устанавливаться на компьютер.

[ Files ] Source : "CTL3DV2.DLL" ; DestDir : "{sys}" ; Flags : onlyifdoesntexist uninsneveruninstall Source : "MYPROG.EXE" ; DestDir : "{app}" Source : "MYPROG.CHM" ; DestDir : "{app}" Source : "README.TXT" ; DestDir : "{app}" ; Flags : isreadme

– необязательная секция, определяющая, какие будут создаваться ярлыки в меню «Пуск», на рабочем столе и т.д.

[ Icons ] Name : "{group}\My Program" ; Filename : "{app}\MYPROG.EXE" ; WorkingDir : "{app}" Name : "{group}\Uninstall My Program" ; Filename : "{uninstallexe}"

– необязательная секция, определяющая, какие записи будут добавлены в INI-файл.

[ INI ] Filename : "MyProg.ini" ; Section : "InstallSettings" ; Flags : uninsdeletesection Filename : "MyProg.ini" ; Section : "InstallSettings" ; Key : "InstallPath" ; String : "{app}"

и - эти необязательные секции определяют, какие файлы или папки нужно удалить, соответственно, при первой инсталляции или деинсталляции. Пример:

[ UninstallDelete ] Type : files ; Name : "{win}\MYPROG.INI"

– секция определяет языки, которые будут доступны при инсталляции. При запуске инсталлятора будет подобран язык, совпадающий с языком системы. В ином случае по умолчанию будет использоваться язык находящийся первым в секции . Пример:

[ Languages ] Name : "en" ; MessagesFile : "compiler:Default.isl" Name : "nl" ; MessagesFile : "compiler:Languages\Dutch.isl"

– секция для замены сообщений, описанных в языковых файлах .isl . Пример замены стандартного текста «&Next > » на кнопке перехода на следующий шаг только для английского языка:

[ Messages ] en.ButtonNext =&Forward >

– секция для определения значений константы {cm:...} , см. описание констант выше. Пример использования:

[ CustomMessages] CreateDesktopIcon=Create a &desktop icon [ Tasks ] Name : desktopicon; Description : "{cm:CreateDesktopIcon}"

– секция содержит настройки языка, такие как шрифт. Пример:

[ LangOptions ] LanguageName=English LanguageID=$0409 LanguageCodePage=0 DialogFontName= DialogFontSize=8 WelcomeFontName=Verdana WelcomeFontSize=12 TitleFontName=Arial TitleFontSize=29 CopyrightFontName=Arial CopyrightFontSize=8 RightToLeft=no

– эта необязательная секция определяет, какие ключи и значения нужно создать, изменить или удалить в реестре. Примеры использования:

[ Registry ] Root : HKCU ; Subkey : "Software\My Company" ; Flags : uninsdeletekeyifempty Root : HKCU ; Subkey : ; Flags : uninsdeletekey Root : HKLM ; Subkey : "Software\My Company" ; Flags : uninsdeletekeyifempty Root : HKLM ; Subkey : "Software\My Company\My Program" ; Flags : uninsdeletekey Root : HKLM ; Subkey : "Software\My Company\My Program\Settings" ; ValueType : string ; ValueName : "InstallPath" ; ValueData : "{app}"

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

[ Run ] Filename : "{app}\INIT.EXE" ; Parameters : "/x" Filename : "{app}\README.TXT" ; Description : "View the README file" ; Flags : postinstall shellexec skipifsilent Filename : "{app}\MYPROG.EXE" ; Description : "Launch application" ; Flags : postinstall nowait skipifsilent unchecked

– эта необязательная секция определяет, какие программы нужно выполнить в самом начале деинсталляции.

– в этой необязательной секции вы можете разместить свой Pascal-скрипт . Для обработки Pascal-скрипта используется движок RemObjects Pascal Script . Этот движок так же бесплатен, как и Inno Setup . Официальная страница движка RemObjects Pascal Script - . Примеры использования можно найти в файлах «Code*.iss » и «UninstallCode*.iss » в папке «Examples » в месте установки Inno Setup .

Порядок инсталляции и деинсталляции

Очень важный момент при инсталляции – это понимание, в каком порядке происходит выполнение скрипта. Ниже перечислены действия инсталлятора в том порядке, в котором они будут выполняться при установке:

      • Выполнение секции .
      • Элементы секции сохраняются в журнале деинсталляции (который, на этом этапе хранится в памяти).
      • Создаётся директория приложения, если необходимо.
      • Выполняется секции .
      • Резервируется имя файла журнала деинсталляции, если необходимо.
      • Выполняется секция (регистрация файлов пока не производится).
      • Выполняется секция .
      • Выполняется секция .
      • Выполняется секция .
      • Файлы, которые должны регистрироваться, регистрируются, за исключением случая, когда система должна быть перезагружена. В случае, когда требуется перезагрузка, регистрация происходит только после рестарта системы.
      • Добавление в список установленных программ (Панель управления\Программы\Программы и компоненты), если необходимо.
      • Элементы секции сохраняются в журнал деинсталляции.
      • EXE-файл и журнал деинсталлятора сохраняются на диск. После этого момента, пользователю запрещена отмена установки, и любые последующие ошибки не приведут к откату установки.
      • Выполнение секции , кроме элементов секции с установленным флагом «postinstall », которые будут выполнены после отображения последнего шага мастера установки.
      • Обновление ассоциаций для файлов, если флаг «ChangesAssociations » установлен в «yes ».
      • Оповещение выполняемых приложений о том, что переменные окружения изменились, если флаг «ChangesEnvironment » установлен в «yes ».
      • Что касается элементов секции, то они будут выполняться в том порядке, в котором они расположены внутри секции.

Деинсталляция происходит в обратном порядке. Но это не касается секций и , которые будут выполняться в том порядке, в котором они встречаются в скрипте (не в обратном порядке).

Препроцессор Inno Setup

Пару слов хочется написать о препроцессоре Inno Setup (ISPP). Основная задача препроцессора – это автоматизация задач во время компиляции и снижение вероятности опечатки в ваших скриптах. Например, вы можете объявить переменную ISPP (переменная времени компиляции), содержащую имя вашего приложения, а затем использовать значение этой переменной в нескольких местах вашего скрипта. Если в дальнейшем по какой-то причине вы должны изменить имя вашего приложения, вы сможете сделать это в одном месте вашего скрипта. Без ISPP, вам придётся найти и исправить все части скрипта, где вы используете имя приложения, например, AppName, AppVerName, DefaultGroupName и т.п.

Другой пример использования ISPP – это вытягивание информации о версии приложения из ЕХЕ-файла и использование её в инструкции AppVerName в секции . Без ISPP, вам придется менять скрипт каждый раз при изменении версии приложения.

Кроме того, разбиение скрипта на части, даёт возможность создать единый скрипт для разных версий вашего приложения (например, пробная и полнофункциональная версии).

При использовании препроцессора важно помнить, что препроцессор работает только во время компиляции.

Вызов компилятора Inno Setup из командной строки

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

compil32 /cc

А вот пример:

compil32 /cc "c:\isetup\samples\my script.iss"

Вызов компиляции из командной строки, в данном случае, не скрывает отображение прогресса или сообщений об ошибках. Компилятор возвращает 0, если компиляция прошла успешно, 1, если параметры командной строки переданы неверно, или 2, если компиляция не удалась.

Альтернативный способ компиляции – это использование консольного компилятора ISCC.exe . Вот схема использования компилятора:

iscc [ options]

А вот пример:

iscc "c:\isetup\samples\my script.iss"

Вот основные опции:

/DO – отключить создание дистрибутива (меняет все параметры Output в скрипте).
/EO – включить создание дистрибутива (меняет все параметры Output в скрипте).
/O – устанавливает путь, где будет создан дистрибутив (меняет все параметры OutputDir в скрипте).
/F – устанавливает имя файла дистрибутива (меняет все параметры OutputBaseFilename в скрипте).
/S – настройка параметра SignTool .
/Q[p] – для скрытой компиляции (выводятся только сообщения об ошибках, «p » выводит прогресс).
/? – для отображения справки.

Вот пример с использованием опций:

iscc /Qp /O"My Output" /F"MyProgram-1.0 " /Sbyparam=$p "c:\isetup\samples\my script.iss"

ISCC возвращает 0, если компиляция прошла успешно, 1, если неправильно указаны параметры или произошла внутренняя ошибка, или 2, если компиляция не удалась.

В заключении об Inno Setup

Рассказать обо всех возможностях Inno Setup не удастся в рамках одной статьи, это очень большой объём информации, поэтому я описал здесь лишь основные моменты. После прочтения вы сможете начать пользоваться этим замечательным инструментом для создания собственных дистрибутивов. В будущем я расскажу про альтернативные пользовательские интерфейсы. А сейчас, пишите ваши комментарии к статье, и я постараюсь ответить на все ваши вопросы.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: