Программирование на Lazarus

Создание инсталлятора

Разбить на страницы
Показывать лекцию целиком

Цель лекции

На лекции осваиваются приемы разработки инсталляционного файла нашей программы.

Зачем нужны инсталляторы

Наш курс подходит к концу. Мы написали множество проектов, научились делать справку и подключать её к программе, но хотелось бы ещё какие-то из проектов опубликовать в Сети! А что для этого требуется? Установочный файл. Кстати, если вы будете писать программы на заказ, то создание инсталлятора почти наверняка будет обязательным условием проекта.

Казалось бы, можно обойтись каким-нибудь популярным архиватором вроде WinRAR, сделать на нем самораспаковывающийся SFX-архив, прописать, какой файл программы куда должен быть распакован. Однако так вы получите лишь примитивный инсталлятор, в котором пользователю не предоставляется никаких возможностей выбора, а это плохо - даже если пользователь при установке программ обычно использует все настройки "по умолчанию", нажимая только кнопки "Далее" или "Next", ему нравится осознавать, что от него что-то зависит, что он имеет возможность выбора.

Предположим, ваш проект достаточно сложен, содержит десятки файлов. Вы желаете, чтобы пользователь имел выбор способа установки вашей программы: куда устанавливать, нужно ли создавать ярлыки на рабочем столе и в панели быстрого запуска? Устанавливать ли полную версию, выборочную или минимальную? Регистрировать ли программу в реестре или создать INI-файл? Кроме того, пользователь может когда-нибудь захотеть эту программу удалить со своего ПК, а значит, нужно предусмотреть и обратный процесс - деинсталляцию. Все эти операции сделать в обычном архиваторе будет невозможно, или, по крайней мере, чрезвычайно сложно. Зато эти же операции легко создаются в специальных программах-инсталляторах, которые входят в группу утилит программиста. О них и будем говорить на этой лекции.

Обзор инсталляторов

Некоторые среды разработки программ имеют в своем составе инсталляторы. Так, в состав Delphi входит бесплатный инсталлятор Install Shield Express, который, кстати, можно скачать с сайта производителя. Считается, что если в состав IDE входит инсталлятор, то для создания инсталляционного файла (или CD) лучше пользоваться им. Install Shield Express, например, имеет очень удобную функцию включения в инсталляционный пакет "движка" баз данных BDE, который, впрочем, уже устарел, и теперь практически не используется. Ничего другого выдающегося у Install Shield Express не наблюдается, поэтому даже Delphi-программисты предпочитают более "продвинутые" инсталляторы.

Lazarus вообще не имеет в своем составе подобной утилиты, однако существует множество инсталляторов сторонних разработчиков - как платных, так и бесплатных, с помощью которых Lazarus-программист может создать инсталляционный файл или даже загрузочный CD/DVD.

Какие ещё инсталляторы существуют? Их множество: Setup Factory, Visual Studio Installer, Nullsoft Install System, Smart Install Maker и много-много других.

Особо хотелось бы выделить один из самых популярных бесплатных инсталляторов, обладающих широкими возможностями - Inno Setup. Это система создания инсталляторов для Windows-программ. Inno Setup появился в 1997 году и является не просто бесплатным, но и открытым проектом (Open Source), превосходит многие коммерческие установщики по функциональности и стабильности. Мы будем рассматривать создание инсталляторов на основе Inno Setup.

Inno Setup можно скачать с сайта производителя, официальная страничка: http://www.jrsoftware.org/isinfo.php

Или же, вы можете скачать эту программу с моего сайта: isetup-5.5.4.rar

Следует заметить, что при написании курса рассматривалась версия Inno Setup 5.5.4, а они достаточно часто обновляются. Так что на сайте производителя, возможно, вы найдете более свежую версию.

Файл лицензии

Обычно при установке какой либо программы, пользователю вначале предлагается прочитать и принять лицензионное соглашение (лицензию) программы. Пользователь читает (или чаще, не читает) лицензию, устанавливает радиокнопку с надписью "Я принимаю условия" (или что-то аналогичное), после чего становится доступной кнопка "Далее". Наверное, наш инсталлятор должен также выводить какую то лицензию? Где её взять, или как её сделать, не будучи юристом?

Тут совет простой: найдите схожую с вашей программу, и используйте текст её лицензии, переделав лишь название программы, копирайта (того, кому принадлежит авторское право), номер версии, и т.п. То есть, если вы собираетесь опубликовать в Интернете вашу программу, как бесплатную (freeware), то и лицензию копируйте у другой бесплатной программы. Поскольку все лицензии имеют примерно одинаковые предлагаемые условия и используют одинаковую терминологию, то ничего страшного в данной хитрости нет. Создайте обычный текстовый файл с текстом лицензии, например, в стандартном Блокноте. Мы рассмотрим создание инсталлятора для нашего Блокнота-шифровальщика из лабораторной работы лекции № 18, поэтому и файл с лицензионным соглашением должен быть об этой программе. Назовите файл License.txt (так обычно называют файлы с лицензией), а текст этого файла может быть примерно таким:

"CodeBook" (Блокнот-шифровальщик)

Copyright (c) 2014, В.Ю. Ачкасов

Версия 1.0 (freeware)

----------------------------------------------

До установки и/или использования этого программного обеспечения, внимательно ознакомьтесь с условиями этого лицензионного соглашения и ограниченной гарантии.

ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ

АВТОРСКОЕ ПРАВО

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

Всеми авторскими правами на программу "CodeBook" владеет только её автор - Вячеслав Юрьевич Ачкасов. Все права, не предоставленные здесь явно, сохраняются за автором. Автор оставляет за собой право отменить действие данной лицензии в любой из следующих версий программы.

ИСПОЛЬЗОВАНИЕ И РАСПРОСТРАНЕНИЕ:

Текущая версия "CodeBook", документация и сопутствующие файлы могут свободно использоваться, а также копироваться, передаваться и распространяться любыми способами при соблюдении следующих условий:

- Файлы должны распространяться в неизменном исходном виде. Это должен быть исходный архив, сформированный автором. Не допускается взимание платы за распространение "CodeBook" без письменного разрешения автора.
- "CodeBook" не может быть продан или перепродан, включен в состав другого программного обеспечения, использоваться в службе поддержки коммерческого предприятия, или использоваться для иного способа получения прибыли, без письменного разрешения автора.
- При цитировании, перепечатке или другом использовании любых фрагментов документации или файлов, входящих в "CodeBook", ссылка на автора и источник цитирования обязательна.
- Вы не можете использовать, копировать, эмулировать, создавать новые версии, сдавать в наем или аренду, продавать, изменять, передавать программу или любые из ее составляющих, иначе, чем определено настоящим лицензионным соглашением.
- Вы не можете декомпилировать, дизассемблировать, изучать код программы другими способами, кроме случаев, когда такая деятельность явно разрешается законом, несмотря на это ограничение.
- Любое такое нелегальное использование означает автоматическое и немедленное прекращение действия настоящего соглашения и может преследоваться по закону.

ГАРАНТИИ

"CodeBook" распространяется по принципу "КАК ЕСТЬ". Любые последствия, финансовые и другие потери, могущие наступить вследствие использования "CodeBook" самой по себе и/или совместно с другим программным обеспечением не могут являться поводом для предъявления каких-либо претензий к автору и официально уполномоченным распространителям.

Установка и/или использование "CodeBook" означает, что вы понимаете положения настоящего лицензионного соглашения и согласны с ними. Если почему-либо вы не согласны с этим лицензионным соглашением, вы не имеете права устанавливать или использовать данное программное обеспечение и вам необходимо удалить файлы дистрибутива "CodeBook" с ваших устройств хранения информации и прекратить их использование.

Copyright (c) 2014, В.Ю. Ачкасов

Разумеется, вы можете изменить этот текст - добавить или удалить какие либо разделы, изменить фамилию правообладателя на свою, добавить собственные данные для обратной связи (e-mail, ваш сайт). Но в целом, текст файла с лицензионным соглашением должен выглядеть примерно так.

Создание инсталлятора в Inno Setup

Мы рассмотрим самый простой случай создания инсталлятора. Буквально, в несколько кликов мыши. Однако возможности Inno Setup куда шире. При необходимости, вы освоите их самостоятельно с помощью достаточно подробной справки (правда, на английском языке, хотя в Интернете можно найти и русифицированные варианты).

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

C:\CodeBook

В эту папку нам нужно будет скопировать три файла:

  • CodeBook.exe - Исполняемый файл программы
  • CodeBook.chm - Файл справочной системы
  • License.txt - Файл с лицензионным соглашением
  • Конечно, количество и состав файлов зависит от проекта - некоторые проекты могут иметь десятки, а то и сотни файлов. Нам же для данного проекта достаточно будет этих трех файлов.

    Загружаем Inno Setup. Выходит следующее окно приветствия:

    (рис 29.1) Начальное окно Inno Setup

    Здесь мы можем выбрать следующие пункты:

    В секции "New file":

  • Create a new empty script file - Создание нового пустого скриптового файла. Дело в том, что каждый проект создания инсталлятора в Inno Setup - это набор скриптов, внутренних команд, которые описывают сценарий создания инсталлятора и используемые настройки. Если вы изучите эти скрипты, то сможете создавать инсталляторы любой сложности. Но на данном этапе нам это не нужно.
  • Create a new script file using the Script Wizard - Создание нового скриптового файла с использованием Мастера Сценариев. Это то, что нам сейчас нужно, включите эту радиокнопку.
  • Есть еще раздел "Open file" с пунктом Open an existing script file - Открыть и использовать существующий файл сценариев. Этот пункт может вам пригодиться, если вы захотите изменить существующий сценарий.

    Итак, включаем Create a new script file using the Script Wizard и нажимаем "ОК". На следующем шаге будет выведено приветствие Мастера сценариев, тут просто нажимаем кнопку "Next". Флажок Create a new empty script file включать не нужно.

    Далее выйдет окно с основной информацией о приложении:

    (рис 29.2) Окно основных настроек

    Здесь нам нужно указать следующие настройки:

  • Application name - Название приложения, в нашем случае CodeBook.
  • Application version - Версия приложения, в нашем случае 1.0.
  • Application publisher - Кому принадлежит авторское право, тут можете указать свою Фамилию, Имя и Отчество.
  • Application website - Официальный сайт программы. Если такого сайта нет, оставляем поле пустым.
  • Нажимаем "Next". Далее будет выведено окно папки проекта:

    (рис 29.3) Окно папки проекта

    В поле "Application destination base folder" мы должны указать, куда по умолчанию будет устанавливаться наша программа. По умолчанию, это папка C:\Program Files. Так и оставим: если пользователь укажет другой путь, то программа установится туда, иначе - в C:\Program Files.

    В поле "Application folder name" требуется указать папку, куда будет скопирована программа. В нашем случае получается, что полным адресом установки программы будет C:\Program Files\CodeBook.

    Флажок "Allow user to change the application folder" во включенном положении позволит пользователю изменить папку установки программы, предложенную по умолчанию. Правила хорошего тона этого требуют, так что оставляем флажок включенным.

    Флажок "The application doesn't need a folder" (Это приложение не нуждается в папке) означает, что программе не требуется собственная папка, значит, она будет установлена по адресу C:\Windows. Это иногда делают для системных утилит, но наша программа в папке нуждается, так что флажок должен быть выключен.

    Нажимаем "Next". Далее будет выведено окно, в котором будет предложено указать главный файл программы, а также добавить остальные файлы (и папки), которые должны быть установлены:

    (рис 29.4) Указание файлов (и папок) проекта

    В поле "Application main executable file" нужно указать главный файл программы. Нажмите кнопку "Browse" и найдите этот файл, как на рисунке (все файлы создаваемого инсталлятора мы поместили в папку C:\CodeBook, если вы помните).

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

    Кнопка "Add folder" позволяет добавлять вложенные папки в папку программы. У нас таких папок нет, так что этого мы не делаем.

    Флажок "Allow user to start the application after Setup has finished" (Позволить пользователю запуск приложения после установки) оставляем включенным, в этом случае, после установки выйдет запрос о запуске приложения.

    А вот флажок "The application doesn't have a main executable file" (У приложения нет главного исполняемого файла) нам включать не нужно.

    Нажимаем "Next". Далее будет выведено окно папки стартового меню:

    (рис 29.5) Окно папки стартового меню программы

    Здесь, в поле "Application Start Menu folder name" (Имя папки стартового меню программы) требуется ввести имя папки стартового меню, в которой будут располагаться ярлыки программы. Обычно название этой папки совпадает с названием программы, но при желании, можете его изменить.

    Флажок "Allow user to change the Start Menu folder name" (Позволить пользователю изменить имя папки Стартового Меню) лучше оставить включенным, так требуют правила хорошего тона.

    Флажок "Allow user to disable Start Menu folder creation" (Позволить пользователю отключить создание папки Стартового Меню) включать не нужно - мы ведь хотим, чтобы папка CodeBook присутствовала в Стартовом Меню!

    Флажок "Create an Internet shortcut in the Start Menu folder" при включенном состоянии добавляет в папку Стартового меню ссылку на официальный сайт программы, если таковой существует. Если вы помните, мы не указывали сайт программы, поэтому данный флажок не доступен. Однако если официальный сайт программы существует, и мы его указали, то данный флажок нужно будет включить, это приведет к тому, что в папку Стартового меню с программой будет добавлены ссылка на сайт программы.

    Флажок "Create an Uninstall icon in the Start Menu Folder" при включенном состоянии создаст команду деинсталляции программы. Правила хорошего тона просто требуют, чтобы данный флажок был ВКЛЮЧЕН!

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

    Нажимаем "Next". Далее будет предложено указать файл(ы) с различной информацией:

    (рис 29.6) Окно выбора файлов с дополнительной информацией

    В поле "License file" предлагается указать файл с лицензией, она будет выведена в окне инсталлятора в процессе установки программы. Нажмите "Browse" и выберите наш файл лицензии, как на рисунке.

    В поле "Information file shown before installation" предлагается указать текстовый файл с информацией, которая будет выведена в окне инсталлятора ПЕРЕД установкой. Если у вас есть советы об установке, которые желательно вывести пользователю, можно оформить их в виде текстового файла и указать этот файл в данном поле. У нас такой информации нет (да обычно её вообще не указывают), оставляем поле пустым.

    В поле "Information file shown after installation" предлагается указать текстовый файл с информацией, которая будет выведена в окне инсталлятора ПОСЛЕ установки. Такой информации у нас также нет.

    Нажимаем "Next". Нам будет предложено выбрать языки установки:

    (рис 29.7) Окно выбора языков установки

    Список возможных языков впечатляет. Учитывая, что у пользователя может быть английская версия Windows, оставляем включенным английский язык, и, конечно же, включаем русский. Имейте в виду, что это язык инсталлятора программы, а не язык интерфейса самой программы! Первое окно инсталлятора в любом случае выйдет на языке операционной системы. Затем пользователь может выбрать другой язык, и следующие окна инсталлятора будет уже на нем.

    Снова нажимаем "Next". В следующем окне, в поле "Custom compiler output folder" нам потребуется указать папку, в которую будет помещен результат компиляции проекта - собственно, сам инсталляционный файл. Укажем папку

    C:\OutCodeBook (папка уже должна существовать):

    (рис 29.8) Окно конечных параметров установки

    В поле "Compiler output base file name" нужно будет ввести имя инсталляционного файла нашей программы. Можно оставить его по умолчанию - setup, можно изменить на install, но сейчас всё чаще инсталляционный файл содержит название и версию программы (как это принято в Unix-подобных ОС). У меня это имя CodeBook-1-0. Расширение *.exe будет добавлено автоматически, тут его указывать не нужно.

    Если у вас есть графический ICO-файл с "иконкой", которую вы желаете применить к вашему приложению, то можете выбрать этот файл в поле "Custom Setup icon file". Если вы это сделаете, то новая "иконка" программы будет отображаться и в папке Стартового Меню, и на Рабочем столе, и в панели Быстрого запуска. У нас такого файла нет, мы его не указываем, значит, будет использована "иконка" по умолчанию - стандартная иконка Lazarus-программ - изображение синего отпечатка лапы гепарда.

    И, наконец, в поле "Setup password" можно указать пароль запуска установки. Кто не знает пароль, не сможет установить программу. Эту возможность можно использовать для создания платных программ - кто заплатил за программу, тому высылаете пароль, чтобы он смог установить её. Однако не стоит возлагать на эту возможность больших надежд. Скорее всего, первый же оплативший программу пользователь выложит этот пароль в Интернете, и других оплат вы не дождетесь. Кроме того, концепция shareware подразумевает, что вы даете пользователю пробный период, например, 15 дней, после которого он либо должен заплатить за программу, либо удалить её с ПК. Не зная пароля, пользователь не сможет и опробовать программу. Так что не указываем никакого пароля (тем более, что наша программа имеет лицензию freeware, то есть, бесплатная), и нажимаем "Next".

    В следующем окне запрашивается, нужно ли включать в проект #define-директивы. Это своего рода, константные имена команд. Оставляем флажок "Yes, use #define compiler directives" включенным, и нажимаем "Next" в последний раз.

    Выйдет завершающее окно мастера. Нажмем кнопку "Finish", и проект инсталлятора будет создан. Однако это еще только проект, а не сам инсталлятор. После работы мастера выйдет запрос:

    (рис 29.9) Завершающий запрос: нужно ли компилировать новый скрипт сейчас?

    Нажмите "Да". Далее выйдет запрос, нужно ли сохранять скрипт проекта перед компиляцией? Скрипт проекта - это обычный текстовый файл с расширением ISS, в котором хранится вся та информация, которую мы вводили в мастере. Если есть вероятность, что вы будете этот проект компилировать еще раз, имеет смысл нажать "Да" и сохранить скрипт.

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

    (рис 29.10) Окно Inno Setup после компиляции

    В верхней части расположены директивы скрипта - сценарий создания инсталлятора. В нижней - информация о компиляции. Теперь, если вы заглянете в выходную папку (C:\OutCodeBook), которую указывали ранее, то обнаружите там файл инсталлятора CodeBook-1-0.exe. Причем, если три файла проекта занимают 1,9 Мб, то файл инсталляции будет занимать всего то менее 900 Кб. Сжатие получилось более чем вдвое!

    Теперь можете запустить инсталлятор и протестировать его работу: установите программу, посмотрите, что находится в папке C:\Program Files\CodeBook (если не изменяли папку установки), посмотрите, создалась ли папка CodeBook в Стартовом меню, какие там команды (должны быть две команды: "CodeBook" и "Деинсталлировать CodeBook"). Удалите программу, попробуйте установить её на другом языке.

    Примечание: программа для создания инсталляторов Inno Setup настолько популярна, что для неё сторонними разработчиками создаются различные расширения. Так, могу посоветовать расширение Inno Script Studio, которое является надстройкой над Inno Setup. Inno Script Studio имеет более понятный интерфейс (причем есть возможность установки русского интерфейса), упрощенную последующую работу с директивами скрипта.

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

    Страницы:

    Цель лекции

    На лекции осваиваются приемы разработки инсталляционного файла нашей программы.

    Зачем нужны инсталляторы

    Наш курс подходит к концу. Мы написали множество проектов, научились делать справку и подключать её к программе, но хотелось бы ещё какие-то из проектов опубликовать в Сети! А что для этого требуется? Установочный файл. Кстати, если вы будете писать программы на заказ, то создание инсталлятора почти наверняка будет обязательным условием проекта.

    Казалось бы, можно обойтись каким-нибудь популярным архиватором вроде WinRAR, сделать на нем самораспаковывающийся SFX-архив, прописать, какой файл программы куда должен быть распакован. Однако так вы получите лишь примитивный инсталлятор, в котором пользователю не предоставляется никаких возможностей выбора, а это плохо - даже если пользователь при установке программ обычно использует все настройки "по умолчанию", нажимая только кнопки "Далее" или "Next", ему нравится осознавать, что от него что-то зависит, что он имеет возможность выбора.

    Предположим, ваш проект достаточно сложен, содержит десятки файлов. Вы желаете, чтобы пользователь имел выбор способа установки вашей программы: куда устанавливать, нужно ли создавать ярлыки на рабочем столе и в панели быстрого запуска? Устанавливать ли полную версию, выборочную или минимальную? Регистрировать ли программу в реестре или создать INI-файл? Кроме того, пользователь может когда-нибудь захотеть эту программу удалить со своего ПК, а значит, нужно предусмотреть и обратный процесс - деинсталляцию. Все эти операции сделать в обычном архиваторе будет невозможно, или, по крайней мере, чрезвычайно сложно. Зато эти же операции легко создаются в специальных программах-инсталляторах, которые входят в группу утилит программиста. О них и будем говорить на этой лекции.

    Обзор инсталляторов

    Некоторые среды разработки программ имеют в своем составе инсталляторы. Так, в состав Delphi входит бесплатный инсталлятор Install Shield Express, который, кстати, можно скачать с сайта производителя. Считается, что если в состав IDE входит инсталлятор, то для создания инсталляционного файла (или CD) лучше пользоваться им. Install Shield Express, например, имеет очень удобную функцию включения в инсталляционный пакет "движка" баз данных BDE, который, впрочем, уже устарел, и теперь практически не используется. Ничего другого выдающегося у Install Shield Express не наблюдается, поэтому даже Delphi-программисты предпочитают более "продвинутые" инсталляторы.

    Lazarus вообще не имеет в своем составе подобной утилиты, однако существует множество инсталляторов сторонних разработчиков - как платных, так и бесплатных, с помощью которых Lazarus-программист может создать инсталляционный файл или даже загрузочный CD/DVD.

    Какие ещё инсталляторы существуют? Их множество: Setup Factory, Visual Studio Installer, Nullsoft Install System, Smart Install Maker и много-много других.

    Особо хотелось бы выделить один из самых популярных бесплатных инсталляторов, обладающих широкими возможностями - Inno Setup. Это система создания инсталляторов для Windows-программ. Inno Setup появился в 1997 году и является не просто бесплатным, но и открытым проектом (Open Source), превосходит многие коммерческие установщики по функциональности и стабильности. Мы будем рассматривать создание инсталляторов на основе Inno Setup.

    Inno Setup можно скачать с сайта производителя, официальная страничка: http://www.jrsoftware.org/isinfo.php

    Или же, вы можете скачать эту программу с моего сайта: isetup-5.5.4.rar

    Следует заметить, что при написании курса рассматривалась версия Inno Setup 5.5.4, а они достаточно часто обновляются. Так что на сайте производителя, возможно, вы найдете более свежую версию.

    Файл лицензии

    Обычно при установке какой либо программы, пользователю вначале предлагается прочитать и принять лицензионное соглашение (лицензию) программы. Пользователь читает (или чаще, не читает) лицензию, устанавливает радиокнопку с надписью "Я принимаю условия" (или что-то аналогичное), после чего становится доступной кнопка "Далее". Наверное, наш инсталлятор должен также выводить какую то лицензию? Где её взять, или как её сделать, не будучи юристом?

    Тут совет простой: найдите схожую с вашей программу, и используйте текст её лицензии, переделав лишь название программы, копирайта (того, кому принадлежит авторское право), номер версии, и т.п. То есть, если вы собираетесь опубликовать в Интернете вашу программу, как бесплатную (freeware), то и лицензию копируйте у другой бесплатной программы. Поскольку все лицензии имеют примерно одинаковые предлагаемые условия и используют одинаковую терминологию, то ничего страшного в данной хитрости нет. Создайте обычный текстовый файл с текстом лицензии, например, в стандартном Блокноте. Мы рассмотрим создание инсталлятора для нашего Блокнота-шифровальщика из лабораторной работы лекции № 18, поэтому и файл с лицензионным соглашением должен быть об этой программе. Назовите файл License.txt (так обычно называют файлы с лицензией), а текст этого файла может быть примерно таким:

    "CodeBook" (Блокнот-шифровальщик)

    Copyright (c) 2014, В.Ю. Ачкасов

    Версия 1.0 (freeware)

    ----------------------------------------------

    До установки и/или использования этого программного обеспечения, внимательно ознакомьтесь с условиями этого лицензионного соглашения и ограниченной гарантии.

    ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ

    АВТОРСКОЕ ПРАВО

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

    Всеми авторскими правами на программу "CodeBook" владеет только её автор - Вячеслав Юрьевич Ачкасов. Все права, не предоставленные здесь явно, сохраняются за автором. Автор оставляет за собой право отменить действие данной лицензии в любой из следующих версий программы.

    ИСПОЛЬЗОВАНИЕ И РАСПРОСТРАНЕНИЕ:

    Текущая версия "CodeBook", документация и сопутствующие файлы могут свободно использоваться, а также копироваться, передаваться и распространяться любыми способами при соблюдении следующих условий:

    - Файлы должны распространяться в неизменном исходном виде. Это должен быть исходный архив, сформированный автором. Не допускается взимание платы за распространение "CodeBook" без письменного разрешения автора.
    - "CodeBook" не может быть продан или перепродан, включен в состав другого программного обеспечения, использоваться в службе поддержки коммерческого предприятия, или использоваться для иного способа получения прибыли, без письменного разрешения автора.
    - При цитировании, перепечатке или другом использовании любых фрагментов документации или файлов, входящих в "CodeBook", ссылка на автора и источник цитирования обязательна.
    - Вы не можете использовать, копировать, эмулировать, создавать новые версии, сдавать в наем или аренду, продавать, изменять, передавать программу или любые из ее составляющих, иначе, чем определено настоящим лицензионным соглашением.
    - Вы не можете декомпилировать, дизассемблировать, изучать код программы другими способами, кроме случаев, когда такая деятельность явно разрешается законом, несмотря на это ограничение.
    - Любое такое нелегальное использование означает автоматическое и немедленное прекращение действия настоящего соглашения и может преследоваться по закону.

    ГАРАНТИИ

    "CodeBook" распространяется по принципу "КАК ЕСТЬ". Любые последствия, финансовые и другие потери, могущие наступить вследствие использования "CodeBook" самой по себе и/или совместно с другим программным обеспечением не могут являться поводом для предъявления каких-либо претензий к автору и официально уполномоченным распространителям.

    Установка и/или использование "CodeBook" означает, что вы понимаете положения настоящего лицензионного соглашения и согласны с ними. Если почему-либо вы не согласны с этим лицензионным соглашением, вы не имеете права устанавливать или использовать данное программное обеспечение и вам необходимо удалить файлы дистрибутива "CodeBook" с ваших устройств хранения информации и прекратить их использование.

    Copyright (c) 2014, В.Ю. Ачкасов

    Разумеется, вы можете изменить этот текст - добавить или удалить какие либо разделы, изменить фамилию правообладателя на свою, добавить собственные данные для обратной связи (e-mail, ваш сайт). Но в целом, текст файла с лицензионным соглашением должен выглядеть примерно так.

    Создание инсталлятора в Inno Setup

    Мы рассмотрим самый простой случай создания инсталлятора. Буквально, в несколько кликов мыши. Однако возможности Inno Setup куда шире. При необходимости, вы освоите их самостоятельно с помощью достаточно подробной справки (правда, на английском языке, хотя в Интернете можно найти и русифицированные варианты).

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

    C:\CodeBook

    В эту папку нам нужно будет скопировать три файла:

  • CodeBook.exe - Исполняемый файл программы
  • CodeBook.chm - Файл справочной системы
  • License.txt - Файл с лицензионным соглашением
  • Конечно, количество и состав файлов зависит от проекта - некоторые проекты могут иметь десятки, а то и сотни файлов. Нам же для данного проекта достаточно будет этих трех файлов.

    Загружаем Inno Setup. Выходит следующее окно приветствия:

    (рис 29.1) Начальное окно Inno Setup

    Здесь мы можем выбрать следующие пункты:

    В секции "New file":

  • Create a new empty script file - Создание нового пустого скриптового файла. Дело в том, что каждый проект создания инсталлятора в Inno Setup - это набор скриптов, внутренних команд, которые описывают сценарий создания инсталлятора и используемые настройки. Если вы изучите эти скрипты, то сможете создавать инсталляторы любой сложности. Но на данном этапе нам это не нужно.
  • Create a new script file using the Script Wizard - Создание нового скриптового файла с использованием Мастера Сценариев. Это то, что нам сейчас нужно, включите эту радиокнопку.
  • Есть еще раздел "Open file" с пунктом Open an existing script file - Открыть и использовать существующий файл сценариев. Этот пункт может вам пригодиться, если вы захотите изменить существующий сценарий.

    Итак, включаем Create a new script file using the Script Wizard и нажимаем "ОК". На следующем шаге будет выведено приветствие Мастера сценариев, тут просто нажимаем кнопку "Next". Флажок Create a new empty script file включать не нужно.

    Далее выйдет окно с основной информацией о приложении:

    (рис 29.2) Окно основных настроек

    Здесь нам нужно указать следующие настройки:

  • Application name - Название приложения, в нашем случае CodeBook.
  • Application version - Версия приложения, в нашем случае 1.0.
  • Application publisher - Кому принадлежит авторское право, тут можете указать свою Фамилию, Имя и Отчество.
  • Application website - Официальный сайт программы. Если такого сайта нет, оставляем поле пустым.
  • Нажимаем "Next". Далее будет выведено окно папки проекта:

    (рис 29.3) Окно папки проекта

    В поле "Application destination base folder" мы должны указать, куда по умолчанию будет устанавливаться наша программа. По умолчанию, это папка C:\Program Files. Так и оставим: если пользователь укажет другой путь, то программа установится туда, иначе - в C:\Program Files.

    В поле "Application folder name" требуется указать папку, куда будет скопирована программа. В нашем случае получается, что полным адресом установки программы будет C:\Program Files\CodeBook.

    Флажок "Allow user to change the application folder" во включенном положении позволит пользователю изменить папку установки программы, предложенную по умолчанию. Правила хорошего тона этого требуют, так что оставляем флажок включенным.

    Флажок "The application doesn't need a folder" (Это приложение не нуждается в папке) означает, что программе не требуется собственная папка, значит, она будет установлена по адресу C:\Windows. Это иногда делают для системных утилит, но наша программа в папке нуждается, так что флажок должен быть выключен.

    Нажимаем "Next". Далее будет выведено окно, в котором будет предложено указать главный файл программы, а также добавить остальные файлы (и папки), которые должны быть установлены:

    (рис 29.4) Указание файлов (и папок) проекта

    В поле "Application main executable file" нужно указать главный файл программы. Нажмите кнопку "Browse" и найдите этот файл, как на рисунке (все файлы создаваемого инсталлятора мы поместили в папку C:\CodeBook, если вы помните).

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

    Кнопка "Add folder" позволяет добавлять вложенные папки в папку программы. У нас таких папок нет, так что этого мы не делаем.

    Флажок "Allow user to start the application after Setup has finished" (Позволить пользователю запуск приложения после установки) оставляем включенным, в этом случае, после установки выйдет запрос о запуске приложения.

    А вот флажок "The application doesn't have a main executable file" (У приложения нет главного исполняемого файла) нам включать не нужно.

    Нажимаем "Next". Далее будет выведено окно папки стартового меню:

    (рис 29.5) Окно папки стартового меню программы

    Здесь, в поле "Application Start Menu folder name" (Имя папки стартового меню программы) требуется ввести имя папки стартового меню, в которой будут располагаться ярлыки программы. Обычно название этой папки совпадает с названием программы, но при желании, можете его изменить.

    Флажок "Allow user to change the Start Menu folder name" (Позволить пользователю изменить имя папки Стартового Меню) лучше оставить включенным, так требуют правила хорошего тона.

    Флажок "Allow user to disable Start Menu folder creation" (Позволить пользователю отключить создание папки Стартового Меню) включать не нужно - мы ведь хотим, чтобы папка CodeBook присутствовала в Стартовом Меню!

    Флажок "Create an Internet shortcut in the Start Menu folder" при включенном состоянии добавляет в папку Стартового меню ссылку на официальный сайт программы, если таковой существует. Если вы помните, мы не указывали сайт программы, поэтому данный флажок не доступен. Однако если официальный сайт программы существует, и мы его указали, то данный флажок нужно будет включить, это приведет к тому, что в папку Стартового меню с программой будет добавлены ссылка на сайт программы.

    Флажок "Create an Uninstall icon in the Start Menu Folder" при включенном состоянии создаст команду деинсталляции программы. Правила хорошего тона просто требуют, чтобы данный флажок был ВКЛЮЧЕН!

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

    Нажимаем "Next". Далее будет предложено указать файл(ы) с различной информацией:

    (рис 29.6) Окно выбора файлов с дополнительной информацией

    В поле "License file" предлагается указать файл с лицензией, она будет выведена в окне инсталлятора в процессе установки программы. Нажмите "Browse" и выберите наш файл лицензии, как на рисунке.

    В поле "Information file shown before installation" предлагается указать текстовый файл с информацией, которая будет выведена в окне инсталлятора ПЕРЕД установкой. Если у вас есть советы об установке, которые желательно вывести пользователю, можно оформить их в виде текстового файла и указать этот файл в данном поле. У нас такой информации нет (да обычно её вообще не указывают), оставляем поле пустым.

    В поле "Information file shown after installation" предлагается указать текстовый файл с информацией, которая будет выведена в окне инсталлятора ПОСЛЕ установки. Такой информации у нас также нет.

    Нажимаем "Next". Нам будет предложено выбрать языки установки:

    (рис 29.7) Окно выбора языков установки

    Список возможных языков впечатляет. Учитывая, что у пользователя может быть английская версия Windows, оставляем включенным английский язык, и, конечно же, включаем русский. Имейте в виду, что это язык инсталлятора программы, а не язык интерфейса самой программы! Первое окно инсталлятора в любом случае выйдет на языке операционной системы. Затем пользователь может выбрать другой язык, и следующие окна инсталлятора будет уже на нем.

    Снова нажимаем "Next". В следующем окне, в поле "Custom compiler output folder" нам потребуется указать папку, в которую будет помещен результат компиляции проекта - собственно, сам инсталляционный файл. Укажем папку

    C:\OutCodeBook (папка уже должна существовать):

    (рис 29.8) Окно конечных параметров установки

    В поле "Compiler output base file name" нужно будет ввести имя инсталляционного файла нашей программы. Можно оставить его по умолчанию - setup, можно изменить на install, но сейчас всё чаще инсталляционный файл содержит название и версию программы (как это принято в Unix-подобных ОС). У меня это имя CodeBook-1-0. Расширение *.exe будет добавлено автоматически, тут его указывать не нужно.

    Если у вас есть графический ICO-файл с "иконкой", которую вы желаете применить к вашему приложению, то можете выбрать этот файл в поле "Custom Setup icon file". Если вы это сделаете, то новая "иконка" программы будет отображаться и в папке Стартового Меню, и на Рабочем столе, и в панели Быстрого запуска. У нас такого файла нет, мы его не указываем, значит, будет использована "иконка" по умолчанию - стандартная иконка Lazarus-программ - изображение синего отпечатка лапы гепарда.

    И, наконец, в поле "Setup password" можно указать пароль запуска установки. Кто не знает пароль, не сможет установить программу. Эту возможность можно использовать для создания платных программ - кто заплатил за программу, тому высылаете пароль, чтобы он смог установить её. Однако не стоит возлагать на эту возможность больших надежд. Скорее всего, первый же оплативший программу пользователь выложит этот пароль в Интернете, и других оплат вы не дождетесь. Кроме того, концепция shareware подразумевает, что вы даете пользователю пробный период, например, 15 дней, после которого он либо должен заплатить за программу, либо удалить её с ПК. Не зная пароля, пользователь не сможет и опробовать программу. Так что не указываем никакого пароля (тем более, что наша программа имеет лицензию freeware, то есть, бесплатная), и нажимаем "Next".

    В следующем окне запрашивается, нужно ли включать в проект #define-директивы. Это своего рода, константные имена команд. Оставляем флажок "Yes, use #define compiler directives" включенным, и нажимаем "Next" в последний раз.

    Выйдет завершающее окно мастера. Нажмем кнопку "Finish", и проект инсталлятора будет создан. Однако это еще только проект, а не сам инсталлятор. После работы мастера выйдет запрос:

    (рис 29.9) Завершающий запрос: нужно ли компилировать новый скрипт сейчас?

    Нажмите "Да". Далее выйдет запрос, нужно ли сохранять скрипт проекта перед компиляцией? Скрипт проекта - это обычный текстовый файл с расширением ISS, в котором хранится вся та информация, которую мы вводили в мастере. Если есть вероятность, что вы будете этот проект компилировать еще раз, имеет смысл нажать "Да" и сохранить скрипт.

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

    (рис 29.10) Окно Inno Setup после компиляции

    В верхней части расположены директивы скрипта - сценарий создания инсталлятора. В нижней - информация о компиляции. Теперь, если вы заглянете в выходную папку (C:\OutCodeBook), которую указывали ранее, то обнаружите там файл инсталлятора CodeBook-1-0.exe. Причем, если три файла проекта занимают 1,9 Мб, то файл инсталляции будет занимать всего то менее 900 Кб. Сжатие получилось более чем вдвое!

    Теперь можете запустить инсталлятор и протестировать его работу: установите программу, посмотрите, что находится в папке C:\Program Files\CodeBook (если не изменяли папку установки), посмотрите, создалась ли папка CodeBook в Стартовом меню, какие там команды (должны быть две команды: "CodeBook" и "Деинсталлировать CodeBook"). Удалите программу, попробуйте установить её на другом языке.

    Примечание: программа для создания инсталляторов Inno Setup настолько популярна, что для неё сторонними разработчиками создаются различные расширения. Так, могу посоветовать расширение Inno Script Studio, которое является надстройкой над Inno Setup. Inno Script Studio имеет более понятный интерфейс (причем есть возможность установки русского интерфейса), упрощенную последующую работу с директивами скрипта.

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

    Вернуться к учебному плану