Пишем инсталлятор


Содержание

Пишем инсталлятор

Представленная ниже страница, лишь часть огромного сайта посвященного различной компьютерной документации, на сайте собрано более 800 мб информации. Если Вы не нашли в этой статье, то что Вы ищите попробуте посмотреть здесь, cпросить на форуме или поискать необходимую Вам информацию в нашем каталоге ссылок сайтов компьтерной тематики.

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

С уважением,
команда разработчиков eManual.ru

Пишем инсталлятор

Наиболее частый вопрос, который мне задают — как сделать свою программу инсталляции? А когда я расспрашиваю подробнее мне объясняют, что нужна просто красивая программка, которая скопирует файлы из одного места в другое. Поэтому я решил написать статью, где соберу многое из того, что писал ранее (и это есть на VBStreets). мы напишем программу, которая будет устанавливать файлы.

Сразу извиняюсь за некоторую сумбурность и непоследовательность повествования, просто у меня сейчас ОЧЕНЬ мало времени. поэтому здесь лежит пример .

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

Теперь объясняю идею — надо написать программу, которая может извлекать, копировать (добавлять запись в system.ini и в реестр и т.д.). Но все это мелочи . Основная идея — все файлы держать в ресурсах как бинарные, а потом извлекать их куда надо.

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

При нажатии кнопки Далее>> (или Next>>), можете назвать так, как хотите.

frmNext.Show
frmNext.Height = Me.Height
frmNext.W > frmNext.Move Me.Left, Me.Top
Unload Me

Юзер может подвинуть форму, поэтому другую нужно отображать там же, где была предыдущая, т.к. это будет очень эффектно, как будто это одна форма :-).

В код первой формы мы вставим такую штуку (Form_Load):

If App.PrevInstance Then
End
MsgBox «Уже запущена одна версия программы установки!», 16, «Setup»
End If

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

Далее вы можете насовать сколь угодно много форм, но желательно сделать диалог выбора папки для установки. Тут пригодятся следующие вещи: размещаем Dir1, List1, Label1, Label2,Command1. Пишем код.

Private Declare Function GetDiskFreeSpace Lib «kernel32» Alias «GetDiskFreeSpaceA» (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long

Private Sub Drive1_Change()
Spaces = GetDiskFreeSpace(Mid$(Drive1.Drive, 1, 2), secpercl, bytespersec, numoffreecl, AllCl)
Dim l As Long
l = 1024 ^ 2
ss = bytespersec / l
fs = secpercl * ss * numoffreecl
fs = Format(fs, «0»)
label2.Caption = «Свободно на диске: » & fs & » MB»
Dir1.Path = Drive1.Drive
End Sub

Private Sub Dir1_Change()
mDir = Dir1.Path
Label1.Caption = mDir ‘ Эту переменную загоняем в модуль как Public InsDir as String, она нам еще пригодится.
End Sub

Private Sub Command1_Click()
On Error GoTo ree_
nd = InputBox(«Введите имя директории», «Новая папка. «)
If nd = «» Then Exit Sub
MkDir Dir1.Path & «» & nd
Dir1.Refresh
Exit Sub
ree_:
MsgBox «Ошибка, однако.», 16, «Setup»
End Sub

Можете добавлять еще что-нибудь. Это же я так для примера.

Потом идет диалог, установка. Там делаем такую вещь:

Private Sub Form_Load() ‘Извлекаем из ресурсов файл, и создаем ярлык.
ProgressBar1.Value = 20
Dim BinaryData() As Byte
BinaryData = LoadResData(101, «Files»)
ProgressBar1.Value = 80
Open mDir & «wininfo.exe» For Binary Access Write As #1
Put #1, 1, BinaryData
Close #1
ProgressBar1.Value = 98
lngresult = fCreateShellLink(«. Desktop», «WinInfo», mDir & «wininfo.exe», «») ‘В английских форточках работает.
ProgressBar1.Value = 100
Unload Me
frmFinish.Show
End Sub

Все, после этого выводим последний диалог с поздравлениями.

Возникает проблема — самому инсталлятору нужны посторонние файлы, вроде msvbvm60.dll и ocx, которые вы использовали. Это решается так — эти файлы тащите вместе и инсталлятором в sfx архиве. При распаковке которого запускается ваш setup. что не раздражает пользователя. (Это вы увидите в примере ). А в инсталляторе добавляете команды типа FileCopy — переносите файлы туда, куда надо.

Smart Install Maker

Smart Install Maker — это мощное и удобное средство для создания инсталляторов. Программа обладает удобным и интуитивно понятным интерфейсом, а также полным набором необходимых функций для создания профессиональных инсталляторов с минимальным размером, высокой степенью сжатия файлов и приятным интерфейсом.

Помимо стандартного минимума, Smart Install Maker позволяет редактировать системный реестр и INI-файлы, создавать программные ярлыки, запускать ассоциируемые и исполняемые файлы, регистрировать новые шрифты и ActiveX компоненты, отображать тексты информации и лицензионного соглашения. Также, с помощью этой утилиты, вы сможете создать мультиязыковые инсталляторы с поддержкой более 20-ти популярных языков мира.

Инсталляторы, созданные в среде Smart Install Maker имеют небольшой размер и поддерживают превосходный формат сжатия Cab. Все это позволяет создавать действительно компактные дистрибутивы, которые не создадут проблем при их распространении по интернету.

Особенности Smart Install Maker

  • Современный стиль оформления
  • Полностью настраиваемый интерфейс инсталлятора
  • Небольшой размер установочного модуля
  • Поддержка алгоритма сжатия Cab
  • Поддержка мультиязычных инсталляторов
  • Интуитивно понятный интерфейс пользователя
  • Проверка версии установленного .NET Framework
  • Возможность использования переменных директорий
  • Возможность разбивки инсталлятора на установочные диски

Отзывы пользователей

Я уже давно работаю с инсталляторами на профессиональном уровне, но такого удобного инструмента еще не встречал. Большое человеческое спасибо за эту программу.

Спасибо огромное за программу.
Очень удобная, легкая и доступная в понимании, красивый интерфейс. Лично мое мнение, что на интернет-рынке аналогов нет. Мне очень по душе. Думаю её еще смогут по достоинству оценить многие пользователи.
Желаю Вам творческих успехов.

Совершенно случайно набрел в Инете на Вашу программу и просто восхитился, прекрасно сделанный софт, и что немаловажно, толково написанный хелп. Мне есть с чем сравнивать, перепробовал десятка полтора разных инсталлеров, но SIM оказался самым удобным и простым. Мои комплименты за отлично сделанную работу! Очень многие зарубежные инсталляторы просто отдыхают в сравнении с SIM.

Быстрые ссылки

Новости

Smart Install Maker 5.04
Вышла новая версия Smart Install Maker 5.04. 29 ноября 2011 г.

Smart Install Maker 5.03
Вышла новая версия Smart Install Maker 5.03. 23 сентября 2010 г.

Smart Install Maker 5.02
Вышла новая версия Smart Install Maker 5.02. 3 марта 2008 г.

Скриншоты

Smart Install Maker

© 2004-2020 InstallBuilders. Все права защищены.

Пишем инсталлятор

Подскажите как сделать инсталлятор на C#. Точнее: как «распаковать» exe файл в папку(ну а во-первых его «запаковать»), создать ярлыки, «записать» программу в программы и компоненты, ну и чтобы на установщик не «ругались» антивирусники.
Знаю, есть программы, с помощью которых можно без проблем создать его. Но мне нужно чтобы можно было сделать свой дизайн, свой текст, свои диалоговые окна. Может вы знаете такие программы? Либо знаете как сделать инсталлятор без них?

На чем пишут Инсталер к програмам??

23.07.2009, 16:05

В чем пишут на C?
Ребят, в какой системе программирования пишут на чистом C?

На чем пишут оконные приложения
Привет. Столкнулся с вопросом. На чем пишут оконные профессиональные приложения в Visual Studio.

Что на чем пишут?
Недавно столкнулся с такой проблемой:Что на чем пишут? Visual studio — игры , Java — приложения для.

На чем обычно пишут интерфейс?
Господа программисты, расскажите, на основе каких библиотек, фреймворков и т.д. вы обычно пишете.

На чем пишут приложения
Вот и суть, на чем пишкт приложения дл айос? и если я хочу написать, то смогу протестить на свое.

31.07.2009, 17:43 21 01.08.2009, 15:13 22

да действительно работает прога хорошо
у тебя будет в планах сделать инсталятор — конструктор?

Добавлено через 2 минуты 2 секунды
PB, знаешь где скачать ломанный PureBasic?

01.08.2009, 15:20 23 01.08.2009, 18:41 24

Скорее всего нет.
Нет свободного времени.

Вложения

Полная версия PureBasic.txt (774 байт, 25 просмотров)
01.08.2009, 18:41
13.08.2009, 13:57 [ТС] 25

всем привет! у меня при инсталляции проги возникли некоторые проблемы. запускаю Setup проходит процесс инсталляции и выдает ошибку:
Warning «BDE is not installed properly on your machine, so you will not be able to run SSAccounting».
как исправить.

Добавлено через 26 минут 12 секунд
может я просто не правильно подключил BDE. если так то как правильно подключить BDE и Alias к пакету инсталляции. или в чем то другом ошибка.

13.08.2009, 14:00 26

не использовать BDE.
Перевод ошибки: BDE не устаровлена правильно на вашей машине, поэтому у вас не будет возможности запустить SSAccounting.

p.s: ошибка возникает на твоей машине? или на другой?

14.08.2009, 13:06 [ТС] 27

на моей машине. но SSAccounting запускается и сам сетап билдается и не выдает ошибок. только после инсталляции выскакивает это сообщение.

Добавлено через 45 секунд
не могу не использовать BDE. у меня работа с БД.

Добавлено через 22 часа 52 минуты 48 секунд
решил не много по экспериментировать. кто знает. есть инсталка к программе написанная на Installshield, сорсов к инсталяхе нету, как вытащить компоненты из сетапки если есть только она.

18.08.2009, 17:43 [ТС] 28

есть интсалка как из нее вытащить компоненты?

Добавлено через 37 секунд
Подскажите плз!!очень надо.

19.08.2009, 18:13 [ТС] 29
19.08.2009, 18:17 30
19.08.2009, 18:42 [ТС] 31
20.08.2009, 17:23 32

Всем привет! помогите найти InstallShield decompiler.

Добавлено через 9 минут 6 секунд
нашел полезную статью. читаем.

. Создание инсталлятора для твоей программы

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

Ясно, что своими руками писать инсталлятор мы не будем, поскольку это лишние затраты времени, которые никто не оценит. Разве что у тебя настолько уникальная программа, что ни один инсталлятор не сможет ее правильно установить, поскольку «не знает» всех ее особенностей. Тогда эта статья не для тебя, поскольку в ней будут рассмотрены популярные стандартные решения для создания инсталляторов, а именно InstallShiled для Delphi, Visual Studio Installer, Setup Factory и InnoSetup. Конечно, твой выбор не ограничивается этими программами, но они были выбраны как одни из самых лучших в своем классе.


Скорее всего, ты когда-нибудь использовал одну или несколько программ для создания инсталляторов. Если ты использовал две-три или более таких программ, то, наверное, замечал, что эти программы бывают трех типов: «автоматизированные», «ручные» и «полуавтоматизированные». Первые представляют собой мастер (или его пошаговое подобие с возможностью выбирать шаг создания инсталлятора), создающий проект инсталлятора. Примером программ такого типа может стать InstallShield для Delphi. Второй тип программ подразумевает создание разработчиком (то есть тобой) специального скрипта, на основании которого будет создан инсталлятор. Скрипт описывает этапы установки программы и их последовательность. Примером второго типа программ может послужить не рассмотренная в статье программа WISE. Третий тип программ – это своеобразный симбиоз первого и второго типов. Программы третьего типа обладают собственным мастером, который «пишет» скрипт. Ты можешь откомпилировать этот скрипт сразу или немного изменить его, подправив, например, ключ реестра или другую информацию, а потом уже компилировать. Большинство современных программ для создания инсталляторов относятся именно к третьему типу.

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

Третий тип программ сочетает в себе все преимущества первых двух типов. В твоем распоряжении мастер, создающий сценарий установки. Если твоя программа стандартная, то есть не требует выполнения каких-либо специфических операций при установке, инсталлятор будет создан через пару минут, как будто ты используешь полностью автоматизированную программу первого типа. Но если тебя что-то не устраивает, можешь отредактировать созданный программой сценарий, как будто ты используешь программу второго типа.
Install Shield

А теперь перейдем к рассмотрению названных программ. Первая на очереди — Install Shield, которая абсолютно бесплатна, ее можно найти на любом компакте с Delphi, желательно, чтобы версия Delphi была посвежее – на новом компакте версия Install Shield тоже будет относительно свежая. Если компакта под рукой не окажется, ты всегда сможешь стянуть ее с сайта Borland. Вот что входит в «обязанности» этой программы:

* создание стандартных диалогов инсталлятора;
* создание нескольких типов установки (например, Standard, Compact и Custom);
* удобная работа с реестром (ты можешь указать, какие изменения в реестре нужно сделать при установке программы);
* удобная работа с библиотеками;
* поддержка BDE (если твоя программа работает с BDE, можно ни о чем волноваться, а просто выбрать BDE, и InstallShield включит его в состав твоего дистрибутива, также будет нужным образом настроен BDE);
* создание ярлыков, папок в меню «Пуск»;
* поддержка носителей разного размера – от флоппи до DVD.

Это, конечно, не все функции программы, но основные возможности, как говорится, «учтены». Использовать InstallShield очень удобно, если твоя программа использует BDE. Во всех остальных программах тебе придется описывать BDE «вручную», что, мягко говоря, неудобно. Даже если в InstallShield нет очень нужной функции, это с лихвой компенсируется поддержкой BDE. Ты даже не представляешь себе, от какой головной боли избавишься, если будешь использовать InstallShield для установки и конфигурирования BDE.
Visual Studio Installer

Visual Studio Installer – это бесплатная утилита от Microsoft, предназначенная для создания инсталляторов для программ, написанных с помощью Visual Studio. Программа доступна в двух версиях, 1.0 (для Win 98) и 1.1 (для Win ME, 2000, XP), по адресу: http://msdn.microsoft.com/vstudio/downloads/tools/vsi11/default.asp.

Перед установкой программы убедись, что у тебя есть Visual Studio Service Pack 3. Главное преимущество Visual Studio Installer связано именно с самим Visual Studio. Если твоя программа написана на Visual Basic или Visual C, Visual Studio Installer сам «пропишет» в проекте инсталлятора все нужные библиотеки, которые потом будут «скомпилированы» в дистрибутив. Кроме этого, Visual Studio Installer ни в чем особенном не проявляет себя – программа как программа.
Setup Factory (www.setupfactory.com)

Setup Factory – это коммерческий продукт, предназначенный для создания инсталляторов. Стоит немалых денег – за седьмую версию просят $395. Ясно, что никто из нас эти деньги платить не собирается, но все равно сумма говорит за себя. Дистрибутив Setup Factory 7.0 весит 18 Мб и постоянно доступен для загрузки . Программа может работать под управлением Windows 95/98/Me/NT/2000/XP/2003 Server. Конек Setup Factory, который будет непременно оценен пользователем, — это темы диалогов. Программа содержит по умолчанию более 20-ти различных тем стандартных диалогов инсталлятора, поэтому твой продукт не будет похож на решения конкурентов.

Setup Factory – это программа третьего типа, то есть мастер плюс возможность редактирования сценария, хотя больше ориентирована именно на создание сценария вручную. В этом случае тебе открываются более 250-ти разных функций программы, которые недоступны при использовании мастера.
Основные функции:

* создание единственного файла дистрибутива — большого и огромного setup.exe (конечно, если тебе нужно разбить дистрибутив на дискеты или компакт-диски, программа сделает это);
* поддержка серийных номеров, в основе которых лежит всем известный алгоритм MD5;
* поддержка дат окончания действия дистрибутива (очень полезно для shareware-продуктов);
* поддержка редактирования реестра;
* поддержка различных языков;
* создание ярлыков и программных групп;
* поддержка проектов Visual Basic;
* вывод отчетов о проекте в формате HTML;
* полный uninstaller;
* проверка правописания;
* автоматический («тихий») режим установки, в котором пользователю не задается вопросов и программа устанавливается сразу после запуска setup.exe.

Inno Setup – бесплатная программа для создания инсталляторов, причем ее исходный код (написан на Delphi) доступен в Сети.

Основные функции программы:

* поддержка всех 32-битных версий Windows – Win 95, 98, ME, NT 4.0 SP6, 2000, 2003, XP;
* способность программы «упаковать» весь дистрибутив в единственный файл setup.exe или разбить дистрибутив на диски;
* различные типы установки: полная, минимальная, выборочная;
* полный uninstaller;
* сжатие дистрибутива в основном методом сжатия 7-Zip LZMA;
* умение инсталлятора сравнивать версии файлов, заменять уже установленные файлы с более старой версией, регистрировать DLL/OCX и библиотеки типов, а также устанавливать шрифты;
* создание ярлыков и программных групп;
* работа с реестром и INI-файлами;
* поддержка редактирования созданного мастером сценария;
* поддержка многоязыковых инсталляций;
* «тихая» установка и удаление программы.

Программа обладает всеми необходимыми функциями, Inno Setup — очень простой и удобный инсталлятор. Кроме того, этот универсальный инсталлятор не привязан ни к Delphi, ни к Visual Studio. Плохо это или хорошо, зависит от твоей программы. Лучше, конечно, чтобы InnoSetup поддерживал BDE и библиотеки Visual Studio, но пока этого нет.
Какую программу выбрать?

Ты не знаешь, какую программу выбрать? Поначалу используй стандартный инсталлятор, который «идет в нагрузку» с твоей IDE. Если ты пишешь на Delphi, попробуй сначала использовать InstallShield, а потом уже пробовать другие инсталляторы. Если же ты пишешь на Visual C/Visual Basic, используй Visual Studio Installer. Если тебе будет не хватать возможностей стандартных программ, попробуй сначала InnoSetup, а потом SetupFactory. Единственный случай, когда у тебя не будет выбора, это если твоя программа использует BDE: тогда намного рациональнее использовать InstallShield.
InnoSetup: создание дистрибутива

Попробуем создать дистрибутив с помощью InnoSetup. Программа не использует BDE, поэтому весь дистрибутив будет состоять всего из четырех файлов: sto.exe, sto.chm, sto.ini, vincheck.exe. Поехали! Запускаем InnoSetup и выбираем Create a new script file using the Script Wizard.

Появится окно мастера, в котором нужно будет ввести информацию о программе.

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

* Program Files directory – программа будет установлена в каталог Program Files на одном из логических дисков;
* (Custom) – по твоему усмотрению.

Каталог для твоей программы, который будет создан в каталоге Program Files, задается в поле Application directory name. Обычно он устанавливается по имени программы. По умолчанию включена опция Allow user to change the application directory, позволяющая пользователю изменять каталог установки. За исключением редких случаев выключать ее не нужно.

Теперь выбираем файлы, которые нужно включить в состав дистрибутива. В поле Application main executable file указывается основной исполнимый файл приложения. Потом с помощью кнопок Add files(s)/Add directory добавляются нужные файлы/каталоги.

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

* Application directory – каталог приложения, то есть каталог, в которой устанавливается программа;
* Program Files directory – каталог Program Files;
* Common Files directory – каталог Common Files;
* Windows directory – каталог %WINDIR%;
* Windows system directory – каталог %WINDIR%\System;
* Setup source directory – каталог, в котором находился файл инсталлятора setup.exe;
* System drive root directory – корневой каталог системного диска, например, C:\;
* Common Startup folder – общая папка автозагрузки (программа будет запускаться автоматически для всех пользователей);
* User Startup folder – пользовательская папка автозагрузки;
* Custom – на твое усмотрение.

В поле Destination subdirectory можно указать подкаталог каталога назначения.

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

Жаль, что мастер не позволяет создавать ярлыки для отдельных файлов, поэтому, чтобы в программной группе было больше ярлыков, выбери создание ярлыка для твоего сайта (Internet shortcut), а также ярлыка для uninstaller’а. Можно, конечно, подправить сценарий установки, но лучше если бы мастер программной группы был более функциональным, например, как в Install Shield.

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

Все, что тебе осталось, — это нажать кнопку Finish. Затем программа спросит, нужно ли откомпилировать сценарий прямо сейчас: не нужно, лучше просмотри код сценария.

Разобраться с только что созданным сценарием несложно, тем более что, прочитав справку, ты сможешь не только понять, что там написано, но и усовершенствовать сценарий. Теперь нажимаем кнопку Run или жмем F9 — наш сценарий будет откомпилирован и запущен.

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

[10:09:15] — Setup started

[10:09:15] Setup version: Inno Setup version 5.0.8

[10:09:15] Original Setup EXE: E:\Program Files\Inno Setup 5\Output\setup.exe

[10:09:15] Setup command line: /SL4 $10038E «E:\Program Files\Inno Setup

5\Output\setup.exe» 679818 51712 /DEBUGWND=$102E2

[10:09:15] Windows version: 5.01.2600 SP1 (NT platform: Yes)

[10:09:15] User privileges: Administrative

Суммарный размер четырех файлов дистрибутива – 2,7 Мб, размер файла setup.exe – чуть больше 900 Кб. Вполне приемлемо, не так ли? Дерзай.

Добавлено через 2 часа 7 минут 2 секунды
помогите найти InstallShield 6.2 Professional decompiler.

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode

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

В этой статье поговорим про создание инсталлятора в Visual Studio средствами InstallShield.

Для начала необходимо скачать и установить бесплатное расширение развертывания приложений для Visual Studio, которое называется Install Shield Limited Edition. Для этого запускаем Visual Studio, жмем “Создать проект” и в типах проектов выбираем “Другие типы проектов” -> “Установка и развертывание”. В меню посередине щелкаем на “Включение InstallShield Limited Edition” и жмем кнопку “ОК”.

В браузере откроется вот такая страница. Кликаем на ссылку в Шаге 2.

Откроется сайт, в котором необходимо заполнить свои личные данные. Заполняем и жмем кнопку “Download Now”.

Откроется страница, на которой будет написан код активации для InstallShield. Также он будет отправлен на указанный при регистрации e-mail. Нажмем кнопку “Download” и начнется загрузка программы на ваш компьютер.

Закрываем Visual Studio и устанавливаем скачанную программу. Директорию установки оставляем без изменения.

Необязательно. В начале установки InstallShield может предупредить о том, что необходимо установить недостающие компоненты для работы программы. Жмем кнопку “Install”, и эти компоненты будут установлены.

Запускаем Visual Studio, создаем проект, переходим в раздел “Установка и развертывание” и выбираем “InstallShield Limited Edition Project”, жмем кнопку “ОК”.

Нас попросят активировать программу. Выберем “Activate or Register for free copy of InstallShield” и нажмем кнопку “Next”. Введем код, полученный ранее, и щелкнем кнопку “Activate”. InstallShield активирован. На экране появится такое окно проекта:

В одной из статей мы рассматривали разработку гитарного тюнера. Создадим инсталлятор для этой программы. Для этого пройдемся по всем вкладкам внизу InstallShield и введем необходимую информацию. Итак, во вкладке “Application Information” введем информацию о компании, название программы, ее версию и веб сайт:

Перейдем во вкладку “Installation Requirements”. Укажем, собрать ли приложение для всех доступных Windows или для каких-либо определенных. Так же выберем требования для программ, которые должны быть обязательно установлены для нормальной работы нашей программы.

В следующей вкладке (Installation Architecture) настройки недоступны, потому что мы используем бесплатную версию InstallShield.

Переходим далее. Вкладка “Application Files”. Жмем кнопку “Add Files” и добавляем все файлы программы, для которой делаем установщик, из папки bin/release (предварительно эту программу нужно собрать как release версию).

Следующая вкладка “Application Shortcuts”. Здесь представлены настройки ярлыков программы. Сначала удаляем нижний файл с припиской “vshost.exe”, затем, по желанию, ставим галочку напротив параметра “создать иконку на рабочем столе”. Ниже можно выбрать свою иконку для программы.

Вкладку “Application Registry” оставляем без изменений.

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

Теперь выберем русский язык в установщике. Для этого в “обозревателе решений” два раза щелкнем на “General information” и в появившемся окне выберем русский язык.

Последний штрих. В верхней панели Visual Studio выбираем “SingleImage” и жмем кнопку “Присоединение…”. Подождем пока файл установщика соберется. Готово!

Что такое инсталлятор и зачем он нужен?

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

Что такое инсталлятор?

Собственно, сообразить, что собой представляет такое программное обеспечение, можно совершенно элементарно. Достаточно просто обратить внимание на сам термин Installer, который с английского правильно переводится именно как «установщик». Инсталлятор – это уже некое универсальное название. Но для чего же он нужен и какие типы такого ПО вообще бывают? Как правило, различают несколько основных типов такого программного обеспечения, среди которых основными являются установщики, предназначенные для:

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

Инсталлятор «Виндовс»

Установщики операционных систем являются, пожалуй, самым объемным классом, поскольку содержат средства инсталляции не только компонентов самих ОС, но и встроенные в их оболочку программы, и целые базы данных драйверов, которые после распознавания «железного» оборудования, имеющегося на компьютере, в процессе инсталляции устанавливают для него необходимые драйверы (управляющее ПО).

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

Однако говоря о том, что такое инсталлятор Windows, не стоит забывать, что сюда же можно включить и программные компоненты, отвечающие за интегрирование в систему специальных пакетов обновлений. По сути своей, такие файлы (чаще всего формата MSI), если они скачаны пользователем в ручном режиме, тоже можно отнести к этой категории.

Сами же официальные инсталляторы операционных систем имеют строго ограниченные наборы предполагаемого для установки программного обеспечения. Наличие некоторых компонентов напрямую зависит от модификации самой системы, другие являются общими для всех версий ОС (например, стандартные приложения вроде «Блокнота», Paint и т. д.). В случае если пакет установщика содержит какие-то дополнительные инструменты, присутствие которых в официальных релизах исключается целиком и полностью, можно с уверенностью утверждать, что он был создан вручную. И ни один официальный установщик Windows не может содержать инсталляторы для нескольких операционных систем одновременно. Исключение составляют только одинаковые ОС, различающиеся по архитектуре (32 или 64 бита).

Установщик программы

Теперь следует остановиться на установке программных апплетов, что знакомо каждому пользователю. Инсталлятор файлов приложений обычно имеет формат EXE (реже встречаются устаревшие DOS-форматы), но использовать его без предварительно установленной операционной системы не представляется возможным ни при каких обстоятельствах. В случае с Windows это связано с тем, что в процессе установки любого программного обеспечения, если только оно не представлено в виде портативной версии, производится регистрация всех компонентов приложения, для чего именно в Windows используется так называемый системный реестр. Его назначение состоит еще и в том, что тут находятся и регистрационные ключи самой системы, и ее настроек, и драйверов, и пользовательских данных, и вообще всего того, что связано с софтверной частью компьютера.

В системах Windows запуск инсталлятора программ осуществляется исключительно от имени администратора (если только его встроенная учетная запись не отключена). Без этого система не только может неправильно установить программу, но и разрешения на ее установку не даст. В конечном счете приложение работать не будет.

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

Инсталлятор драйвера

Теперь давайте поговорим о том, что такое инсталлятор драйвера. Конечно, установщик может быть представлен в виде самого обычного исполняемого EXE-файла, но зачастую они поставляются в виде информационных объектов формата INF. Действия с такими файлами отличаются.

В самом простом случае инсталлировать такой драйвер можно через меню ПКМ на файле с выбором пункта «Установить». Однако выполнить такие действия возможно далеко не всегда. В этом случае система сообщает, что установка с выбранным типом действий невозможна. Разрешить ситуацию можно достаточно просто, обратившись к пункту обновления драйвера в «Диспетчере устройств» и указав местоположение искомого файла.

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

Предположим, вы скачали для модема инсталлятор «Ростелеком» или такой файл у вас есть на съемном носителе. Если установка соответствующего драйвера не будет выполнена автоматически самой операционной системой, вот тогда и нужно будет указать точное местоположение драйвера.

Можно ли сделать инсталлятор самому?

Теперь поговорим о создании инсталлятора самим пользователем. Сейчас речь, конечно же, не идет о том, чтобы использовать какой-то язык программирования. Благо сегодня для таких целей создано достаточно много программ от сторонних разработчиков. При этом включать в пакеты таких установщиков можно любые составляющие. Например, ни для кого не секрет, что на дисках с дистрибутивами Windows частенько присутствуют утилиты для работы с жесткими дисками от Acronis или оффлайн-наборы драйверов DriverPack Solution. Все это включается в инсталляционные наборы не посредством программирования, а как раз с использованием стороннего ПО.

Как включить дополнительные компоненты в состав установочного пакета?

В качестве одного из самых простых решений, если уж вы хотите сделать инсталлятор для нескольких программных продуктов самостоятельно, можно посоветовать небольшую утилиту под названием PortableApps.com Platform или аналогичный апплет Actual Installer. В такой программе, в общем-то, ничего особо выдумывать не нужно.

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

Что такое деинсталлятор?

Наконец, раз существуют инсталляторы, предназначенные для установки программного обеспечения, то, по идее, должны существовать и приложения прямо противоположного направления – деинсталляторы. Действительно, такие программы есть, и с их помощью можно удалять только установленные приложения (и пользовательские, и встроенные в операционную систему). А вот удалить ОС невозможно (это, по всей видимости, и так понятно). Зато преимущество таких программ состоит в том, что они способны автоматически удалять остатки приложений, сканируя жесткий диск и реестр, в то время как «родные» инструменты Windows справляются с такими задачами гораздо хуже (а то и не справляются вообще).

Среди самых мощных апплетов можно выделить iObit Uninstaller и Revo Uninstaller, которые, по мнению большинства экспертов, являются лучшими в своем классе.

Послесловие

Это вкратце и все, что касается понимания того, что собой представляют инсталляторы и деинсталляторы, для чего они нужны и как работают. Здесь не делался упор на создание таких установщиков путем использования языков программирования, что рядовому пользователю и не нужно. Достаточно применять простейшие приложения, позволяющие объединить несколько программ в один установочный пакет. Кстати сказать, из такого набора в программах вроде UltraISO можно создать специальные загрузочные образы, которые можно запускать еще до загрузки Windows и уже из них инсталлировать и операционные системы, и дополнительное ПО.

Программы создания инсталляторов

Предназначены для создания дистрибутивов программ и пакетов программ.

Задачи, выполняемые подобными программами для различных платформ, могут сильно различаться. Мало того, с выходом Windows Installer и опубликования его API для платформы Win32 началось разделение программ на поддерживающие Windows Installer и использующие свои средств.


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

— ориентированны на использование Windows Installer или используют свои средства;

— возможность автоматического отслеживания зависимостей исполнимых файлов и разделяемых библиотек;

— наличие встроенного языка сценариев;

— возможность и пределы, в которых можно изменять поведения мастера инсталляции;

— возможность использования и поддержка национальных языков;

— функции, поддерживаемые в процессе установки (кроме копирования файлов):

— создание ключей реестра;

— перезагрузка системы после или в процессе установки;

— возможность удаления установленной программы;

— возможность контроля версий устанавливаемой программы (перезапись, если необходимо) и разделяемых библиотек;

— возможность и степень сжатия дистрибутива;

— возможность создания дистрибутива, состоящего из одного, или заданного количества файлов;

InstallShield (Install Shield Corp.), Wise InstallMaster Setup (Wise Solutions), Factory (Indigo Rose Corp.), Ghost Installer Studio; GkSetup (Gero Kuehn), Nullsoft Install System (Nullsoft), GP-Install (Quality Software Components), Little Setup Builder (http://www.ammasw.eboard.com), Inno Setup (http://www.gentee.com), Setup Generator (http://www.jrsoftware.org), Ghost Installer (http://www.ginstall.com).

Редакторы ресурсов

Создают и обрабатывают файлы ресурсов, которые после обработки могут быть скомпилированы и включены в исполнимый модуль. Эти программы специфичны для платформы Win.

— состав поддерживаемых ресурсов;

— возможность работы с нестандартными ресурсами;

— возможности импорта и экспорта ресурсов.

Borland Resource Workshop, eXe Scope, Resource Builder (SiComponents), Resource Explorer (http://batry.hypermart.net).

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Увлечёшься девушкой-вырастут хвосты, займёшься учебой-вырастут рога 9791 — | 7666 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Пишем инсталлятор

Платформа: Windows All (XP/Vista/W7/W8 Developer Preview )х32-х64.
Год выпуска: 2011г.
Язык: Русский.
Разработчики: Advanced Installer/Jordan Russell/NetScat Team Software/InstallBuilders Company/Jared Breland/Bome Softwae
Автор сборки: Kyvaldiys
Лекарство: Присутствует
Данный сборник состоит из 6 программ,последних обнавлённых версий(на 11.11.2011г.),на Русском языке,с активацией,для удобства установки упакованных в одну графическую оболочку и перед заливкой проверенных на работоспособность на ОС семейства Windows(XP/W7/W8 Developer Preview в 32х и 64х разрядных версиях).

В сборнике представлены четыре программы для создания,редактирования и продвижения файлов инсталляции программ,приложений и игр установленных или созданных Вами на своём компьютере.Программы предназначенных как для людей не имеющих никакой подготовки,так и для пользователей выпускающих профессиональное ПО.
И ещё две программы для изменения и редактирования ресурсов Windows и таких файлов как DLL и им подобных,плюс программа для распаковки и обратно чего угодно,куда угодно,и как угодно(любые архивы,образы iso,файлы exe,и т.д.)о каждой программе более подробно описано в разделе «Подробно о программах и их установке».

Так же этот пакет будет необходимым дополнением к моей следующей раздаче с рабочим названием»Пакет для cоздания собственых сборок Windows 7 с нуля,для пользователей любого уровня со всей документацией и подробными,наглядными видеоуроками со звуковым сопровождением»скачав и изучив который,через пару-тройку дней даже школьник сможет создавать собственные сборки Windows 7 любой сложности.Этот пакет тоже готов но залью я его чуть позже,после окончательной озвучки видеоуроков.

ХЕШ-СУММЫ образа iso
CRC32: 4F21E3DF
MD5: FE08E339721A56AE6E9BB79BB45C5FB6
SHA-1: 6AEA355CA9697E86E58DF6B347F091F85DE56F1A

Состав сборки:
1)Uniextract 1.6.1-Расширенная версия мультираспаковщика файлов .
2)Restorator 4.0 build 1807-Программа для редактирования ресурсов Windows и других.
Программы для создания инсталляторов перечисляются по мере возрастания их сложности и функциональности.
1)NetScat Extreme Installer 1.15
2)Smart Install Maker 5.0.3.10
3)AdvancedInstallerArchitect8.6.38980
4)Inno Setup Ultra 5.4.2 (Полная,расширенная версия+Апдейт +Skins)
5)Isgsg-программа для быстрого создания скриптов файла инстоллятора из установленных игр с любым графическим оформлением меню установки игры для компеляции в Inno Setup Ultra 5.4.2

Restorator 4.0 build 1807 — редактор ресурсов для многих типов файлов (exe, dll, ocx, scr, и других. ). С помощью Restorator можно русифицировать программы, изменять изображения, значки, меню, диалоги, звуки, мультипликацию и т.п. После всех изменений с файлом можно создать патч. Вы можете просматривать, извлекать и изменять изображения, иконки, тексты, диалоги, курсоры, звуки, видео, меню и другие ресурсы. Кроме этого, вы можете создавать небольшие исполняемые программы-патчи для изменения приложений, но только для одного файла. Главной особенностью программы являются перевод и настройка внешнего вида приложений.
Установка:
В меню установки
1.Нажимаем на Restorator 4.0 build устанавливаем
2.Нажимаем на РУСИФИКАТОР в появившемся окне запускаем файл Рy(1) от имени АДМИНИСТРАТОРА.
3.Нажимаем Ключ,запускаем программу,вводим данные.

NetScat Extreme Installer — Программа для создания инсталляторов. Несмотря на простоту всех действий, выполняемых при построении инсталлятора, NetScat Extreme Installer создает внешне привлекательные, компактные профессиональные инсталляционные пакеты. Возможности инсталлятора, созданного при помощи NetScat Extreme Installer (и самой программы): установка файлов в выбранной директории, регистрация OCX- контролов, запись значений в INI-файлы, запись значений в Реестр, создание ярлыков, создание деинсталлятора, запуск приложений перед удалением, вопрос перед установкой, выбор языка перед установкой, большой список переменных директорий, выбор значка для инсталлятора и деинсталлятора, выбор левой картинки для окна инсталлятора, завершение процессов перед установкой или удалением, в программе используется самое лучшее сжатие на данный момент времени, это — 7-zip.
Установка:
В меню установки
Нажимаем на NetScat Extreme ,устанавливаем и запускаем,нажимаем на ключ,вводим

Smart Install Maker — это мощное и удобное средство для создания инсталляторов. Программа обладает удобным и интуитивно понятным интерфейсом, а также полным набором необходимых функций для создания профессиональных инсталляторов с минимальным размером, высокой степенью сжатия файлов и приятным интерфейсом.
Помимо стандартного минимума, Smart Install Maker позволяет редактировать системный реестр и INI-файлы, создавать программные ярлыки, запускать ассоциируемые и исполняемые файлы, регистрировать новые шрифты и ActiveX компоненты, отображать тексты информации и лицензионного соглашения. Также, с помощью этой утилиты, вы сможете создать мультиязыковые инсталляторы с поддержкой более 20-ти популярных языков мира.
Инсталляторы, созданные в среде Smart Install Maker имеют небольшой размер и поддерживают превосходный формат сжатия Cab. Все это позволяет создавать действительно компактные дистрибутивы, которые не создадут проблем при их распространении по интернету.
Особенности Smart Install Maker
*Современный стиль оформления
*Полностью настраиваемый интерфейс инсталлятора
*Небольшой размер установочного модуля
*Поддержка алгоритма сжатия Cab
*Поддержка мультиязычных инсталляторов
*Интуитивно понятный интерфейс пользователя
*Проверка версии установленного .NET Framework
*Возможность использования переменных директорий
*Возможность разбивки инсталлятора на установочные диски
Установка:
В меню установки
Нжимаем на Smart Install Maker,устанавливаем,запускаем,нажимаем на ключ,вводим

Advanced Installer — программное обеспечение с помощью которого разработчики и системные администраторы смогут без труда создавать инсталляционные пакеты в формате MSI. Программа работает под управлением ОС Windows 2000/XP/Vista, а создаваемые с ее помощью пакеты могут использоваться для развертывания приложений на платформах Microsoft Windows 9x/ME/NT/2k/XP/Vista/7.
Программа крайне проста в использовании (для своего уровня), все взаимодействие с ней осуществляется через удобный интерфейс, так что вам не придется изучать большое количество документации и писать сложных скриптов — каждое действие логично и интуитивно выполняется через систему внутренних команд. Созданные проекты сохраняются в формате XML для дальнейшего использования.
Если к примеру взять в сравнение Wise, InstallShield и другими программами для создания MSI-пакетов, Advanced Installer имеет гораздо более понятный интерфейс, с помощью которого Вы создадите свой пакет установки за считанные минуты.
Установка:
В меню установки
1.Нажимаем на Advanced Installer,устанавливаем.
2.2.Нажимаем на Патч в появившемся окне запускаем файл phAdv от имени АДМИНИСТРАТОРА.

Программа для создания инсталляционных пакетов. Созданный утилитой инсталляционный файл какого-либо приложения, позволяет при его установке считывать и записывать данные в реестр и в конфигурационные INI-файлы. Тут имеется возможность регистрации библиотек и ActiveX компонентов, а также запуск внешних программ. Кроме того, в утилите есть опция создания типов установки, например, таких, как: полная установка, минимальная, выборочная и т.д.
Но Inno Setup Ultra Расширенная это не просто одна программа а целый комплекс программ в которы входит:
Inno_setup v5.4.2
Расширенная версия от Restools
Коллекция плагинов от Restools
InnoSetup Script Joiner
Inno setup Skin Builder 3.0.0.2 с русиком
InnoSetup Unpacker расширенная версия
InnoIDE Великолепная альтернатива IStool.
Собственно, сам IStool.
InnoScriptGenerator 1.0.3.1, переведенный на русский язык
Готовые модули взятые с форума Ру-Боард
Конвертер файлов реестра в скрипт Инно.

По этому во время установки не в коем случае не отказывайтесь от создания папки программ в меню пуск т.к. после установки на рабочем столе окажется только один (основной)ярлык,а все остальные будут находиться в меню пуск.
Установка:
В меню установки
Нажимаем на Inno Setup 5.4.2 ,в меню выбираем какую версию ставить ANSI или Unicode,устанавливаем,далее нажимаем isgsg , устанавливаем,пользуемся.

Если нет инсталлятора: переносим приложения Windows без дистрибутива

Содержание статьи

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

В случае с редким или самописным софтом такая проблема случается сплошь и рядом. Практически каждая отдельно взятая контора может похвастаться, что какой-то местный кудесник-программист наколотил две-три тысячи строк кода, создавая очередную программу отчетности или ERP-систему. И все идет хорошо, пока этот компьютерный гуру не потеряется. Стандартного инсталлятора нет, простое копирование папки с программой не помогает, а программу срочно нужно установить еще на одну машину. Кажется, пора начинать рвать на себе волосы? Но это не вариант для компьютерной нечисти! �� Что переносить?

Итак, самый главный вопрос: что переносить кроме папки с программой? Условно все необходимое можно разбить на три пункта:

  1. Файлы, к которым обращается программа.
  2. Ветки реестра, к которым обращается программа.
  3. Среда выполнения.

Если с пониманием первых двух пунктов проблем нет, то насчет третьего стоит сделать уточнение. Под средой выполнения здесь понимаются базы данных, драйвера устройств (псевдоустройств), именованные каналы (Named Pipes), мэйлслоты, COM/ActiveX компоненты и так далее. То есть, все, с чем работает программа (и что предоставлено сторонним софтом, а не операционной системой) через стандартные интерфейсы Windows — будь то сеть, IPC или тому подобное.

Среда является самым проблемным компонентом при переносе, и именно из-за среды приходится заморачиваться, чтобы ОС на обеих машинах совпадали.

Какие файлы и ветки реестра переносить?

Господа, давайте дружно поднимем бокалы с кофе, выпьем и почтим память безвременно ушедших утилит-мониторов NT Filemon и NT Regmon, которые отслеживали обращения любого процесса к файлам и ключам реестра соответственно. Злой гений Марка Руссиновича безжалостно аннигилировал их… а потом воссоздал из пепла в одном мощном и полезном инструменте. Встречайте, Process Monitor. Именно эта тулза будет основным оружием переноса и поможет нам разобраться, какие файлы использует программа и к каким ключам в реестре обращается. Для этого нам понадобятся две функции: Show Registry Activity и Show File System Activity.

Итак, открывай ProcMon, запускай переносимую софтину и дождись, пока она полностью загрузится. Затем ступай в ProcMon, отключи логирование, найди нужную программу (по имени исполняемого файла), жми правой кнопкой по записи в столбце Process Name и выбирай Include ‘SuperProg.exe’, где SuperProg.exe — это исходное приложение для переноса. Ты увидишь, что Process Monitor отсеял все события, связанные с другими процессами. Можно было бы анализировать все в уме, отслеживая события, которые появляются в Process Monitor, но мы поступим иначе. Для удобства сохраним лог всех обращений в файл. Для этого нажимай «File -> Save…». В окне сохранения опцию «Events to save» выставляй в «Events displayed using current filter»(чекбокс «Also include profiling events» должен быть включен), а «Format» выбирай «Comma-Separated Values (CSV)». Сохрани куда-нибудь Logfile.csv и можешь заглянуть внутрь. Испугался? ��

Разобраться в этой помойке без помощи парсера сложно. Чтобы упростить задачу, я, когда сам занимался подобным переносом, набросал два Perl-скрипта (ищи их на диске). Положи эти скрипты в папку, где был сохранен Logfile.csv (или сразу сохраняй лог в папку к скриптам). Теперь запускай parse.pl. Этот скрипт отпарсит log-файл и создаст еще два лога: file.log будет содержать уникальные обращения к файлам и папкам, reg.log —уникальные обращения к веткам реестра.

Отделяем мух от котлет

Не торопись запускать второй скрипт. Сначала рекомендую отсеять явно левые записи из reg.log. Такие ветки реестра, как HKLM/Software или HKCR/Interface являются чисто системными, поэтому на новую машину их импортировать не имеет смысла (в худшем случае можно испортить систему). Удаляем. Сильно тут не лютуй, а то выкинешь что-то, что имеет отношение к программе, которую переносим. После этого можно с чистым сердцем запускать export.pl. Скрипт пошуршит и создаст в папке кучу REG-файлов (их можно импортировать на целевой системе) + папку subdir. Далее необходимо проанализировать содержание Reg-файлов, напрячь голову и отсортировать файлы на три группы:

  • Нужен программе;
  • Не нужен программе;
  • На дополнительное изучение.

Сортируя файлы, не забывай редактировать абсолютные (полные) пути до компонентов (DLL-библиотек, файлов настроек и прочего), если найдешь. Так мы получим REG-файлы, которые необходимо импортировать на целевой машине. Теперь по поводу файлов. В папке subdir скрипт воссоздал дерево обращений к файлам таким образом:

subdir
C (буква диска)
Program Files

…и так далее, до файлов включительно.

Непосредственный перенос

На новой машине скопируй папку с программой в C:Program Files (к примеру). Импортируй ключи реестра, которые ты определил в группу «Нужен программе». Из папки subdir восстанови структуру файлов и каталогов, отсутствующих в системе, на которую выполняется перенос. Надеюсь, ты понимаешь, что системные файлы и библиотеки заменять не надо. Поэтому при переносе файлов нужно быть очень осторожным. Обязательно обращай внимание, где располагается перемещаемый файл — проведи аналогию с переменными окружения (изучи вывод команды «set» в консоли). Просмотри содержимое каждого файла, который, как тебе кажется, не является системным. Поправь значения опций, в которых задается полный путь до каких-либо компонентов, если найдешь файл(ы) настроек.

Если о защите системных библиотек Windows хоть как-то позаботится SFC (System File Checker), то в случае реестра такой помощи ждать не приходится. Поэтому при импортировании веток реестра с рабочей машины нужно быть вдвойне осторожным. Причем, как и в случае с файлами настроек, придется корректировать пути в строковых параметрах. Зарегистрируй COM-компоненты — их легко определить по наличию нескольких экспортируемых функций (DllRegisterServer, например).

Тем, кто забыл: регистрация производится командой regsvr32 component.dll, где component.dll является COM-сервером (кстати, COM-сервер может находиться и внутри exe-файла). Ценителям Total Commander будет приятно, что для их любимца есть listerплагин, который на раз определяет COM/ActiveX. Если программа использует какие-то специфические технологии, необходима дополнительная настройка. Скажем, в случае с использованием BDE(Borland Database Engine) необходимо внести соответствующие изменения у DataSource’ов, которые использует программа.

После этого остается только проинсталлировать и настроить среду, которая нужна нашему приложению (если нужна). Стандартные компоненты наподобие сервера БД ты установишь сам. Перенос среды должен быть легче всего, поскольку для серверов БД есть нормальные инсталляторы. Установить драйвер можно специальной утилитой, а зарегистрировать COM-сервер еще проще.

Перенос драйверов

А что делать, если программа работает с драйвером, единственный установщик которого потерян вместе с install.exe? Да и как вообще определить, что программа работает с драйвером? Какой-либо специальной тулзы я не нашел, поэтому воспользуемся OllyDbg. Чтобы работать через DeviceIoControl (через эту системную функцию драйверу устройств отправляются разные команды), сначала необходимо открыть созданное устройство через символическую ссылку вызовами CreateFileA/CreateFileW. От этого и будем плясать.

Загрузи программу в отладчик. Прямо на точке входа в окне дизассемблера жми , вводи CreateFileA и нажимай . Мы попали в начало функции открытия файла. На этом месте нажимай или в меню по правой кнопке «Breakpoint — Conditional log». В открывшемся окне в поле «Expression» вписывай DWORD PTR DS:[ESP+4] — по этому адресу лежит указатель на открываемый файл. В комобоксе «Decode value of expression as» выбирай «Pointer to ASCII string» (для юникод-версии соответственно — «Pointer to UNICODE string»). Радио-кнопку выставляй в «Always». Остальные опции оставь по умолчанию. Нажимай и запускай программу.

Очень вероятно, что придется имитировать ее реальное использование, поскольку мы не знаем, в какой момент может произойти обращение к драйверу. Открывай в OllyDbg лог (комбинация клавиш ) и ищи подсвеченные строки, начинающиеся с COND. В кавычках будет указан файл, и если он начинается с . — считай, что это наш драйвер. С помощью утилиты WinObj (кстати, написанной опять же Руссиновичем) выясни настоящее имя устройства. Оно должно выглядеть как DeviceDevName. Посредством той же WinObj убедись, что на другом компьютере этого устройства нет.

Настал черед поиска самого файла драйвера. Большинство драйверов располагаются в %SystemRoot%System32Drivers. Перейди в эту папку и ищи UNICODE-строку имени устройства (DeviceDevName). Если файла с такой строкой нет, то открывай «Сервис Менеджер».

Там ищи все драйвера, которые располагаются по нестандартному пути — искомая строка должна быть в одном из них. Этот же «Сервис Менеджер» поможет тебе перенести драйвер на другой компьютер (сделай скриншоты настроек, пропиши зависимости и так далее).

Утилита хорошая, но, увы, не совсем корректно инсталлирует драйвера. Поэтому, после того, как установишь свой драйвер, выполни следующие действия: найди в редакторе реестра ветку HKEY_LOCAL_MACHINESystemCurrentControlSetServicesвыбранноеимядрайвера и удали ключи «Group» и «ObjectName» в этом разделе. Если ключи не удалить, то менеджер при запуске драйвера будет выдавать ошибку, сообщая, что указан некорректный путь, хотя путь тут как бы и не причем.

Подводные камни

Когда ты считаешь, что все перенес — запускай программу. С вероятностью 70-75% она запустится. Что-то пошло не так? Вполне ожидаемо. Мы тут не яичницу жарим. В общем случае придется применить технологию багхантинга. Брать в зубы дизассемблер, отладчик и ловить исключения (или ExitProcess, если программа вываливается безмолвно). Сложно дать какие-то рекомендации, но все же попробуем. Просмотри внимательно еще раз REG-файлы. Возможно, ты не заметил что-то, что позволяло программе жить и процветать на прежней машине. Попробуй определить несистемные библиотеки из subdir и скопировать их с заменой. Если сообщение, с которым вываливается программа, более информативно, чем «Access violation», попробуй поискать в интернете текст ошибки (это может быть связано со средой исполнения). Но, в любом случае, твоим главным оружием здесь будет незаменимая связка: дизассемблер + отладчик + мозг и прямые руки.

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

Bdetest.exe работает с BDE через алиас «testBDE», за каким-то чертом обращается к драйверу и просто не может функционировать без определенной информации в реестре и файловой системе. На диске ты сможешь найти все необходимое: результат работы скриптов, скрин BDE-алиаса, драйвер, базу и саму программу.

Заключение

Перенос программ без инсталлятора — нетривиальная задача. Необходимо обладать знаниями во многих сферах IT — администрировании, программировании, дизассемблировании, отладке, базах данных. Но всегда помни: непереносимых программ не бывает! Ведь, как гласит манифест хакера, если компьютер совершает ошибку, то это ты напортачил.

Мануал “Создание инсталлятора при помощи Inno Setup”

December 21, 2020 Jazz Team Технические статьи , 0

Введение

В этой статье пойдет речь про Inno Setup — удобный инструмент для упаковки приложений для OS Windows.

Почему Inno Setup? “Сегодня Inno Setup конкурирует и даже превосходит многие коммерческие инсталляторы в наборе функций и стабильности”, — говорится на официальном сайте разработчика. И действительно, этот инструмент довольно простой для освоения и мощный по своим возможностям.

На данный момент разработчики Inno Setup в качестве ключевых возможностей заявляют:

  • поддержку всех версий Windows, начиная с 2000;
  • поддержку как 64-битной, так и 32-битной установки;
  • встроенный обработчик скриптов Pascal для более гибкой настройки;
  • возможность взять приложение и все файлы, которые нужны для его работы, и упаковать их в один компактный .exe файл;
  • Inno Setup поддерживает несколько режимов сжатия данных. При необходимости встроенное сжатие можно отключать и использовать сторонние архиваторы;
  • позволяет при установке добавлять ключи реестра, запускать дополнительные приложения во время, до и после установки;
  • возможность удалять ключи реестра и все следы активности программы, гибко настраивать деинсталлятор.

Первое знакомство

Скачать бесплатно стабильную версию Inno Setup Compiler можно с официального сайта. Там же можно найти FAQ и документацию на английском языке и сторонние библиотеки, упрощающие процесс создания Inno Setup Script (.iss).

В классическом приложении Inno Setup Compiler есть раздел Help, в котором можно найти FAQ, примеры скриптов и документацию.

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

Для создания установочного файла можно воспользоваться мастером создания скриптов Inno Setup.

Мастер предложит заполнить:

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

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

Расширенная настройка

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


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

Все секции скрипта, за исключением [Setup], [Messages], [CustomMessages], [LangOptions] и [Code], содержат строки, разделенные на параметры. Каждый параметр состоит из имени, за которым следует двоеточие, а затем значение. Если не указано иное, параметры являются необязательными, поскольку они принимают значение по умолчанию, если их не указать. Несколько параметров в строке разделяются точкой с запятой и могут быть перечислены в любом порядке.

Пример скрипта Inno Setup

В скрипте поддерживаются комментарии, для это нужно начать строку с точки с запятой ( “;” ).

Описание и примеры секций скрипта

В самом начале скрипта, до всех секций, определяются необходимые константы:

В данном случае MyAppName — это имя приложения, MyAppVersion — версия приложения, MyAppPublisher — разработчик. Эти константы будут доступны в любой части скрипта и при необходимости что-то изменить, достаточно сделать это один раз в одном месте.

[Setup]

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

Описание возможных директив секции Setup:

  • App ;
  • LicenseFile — лицензионное соглашение;
  • InfoBeforeFile — эта информация будет отображена перед страницей “Выбор папки установки” прямо в окне инсталлятора. Здесь можно поместить советы по установке программы и другую информацию, которая будет полезна пользователю для успешной инсталляции вашего приложения;
  • InfoAfterFile — эта информация будет отображена после страницы “Выбор папки установки” прямо в окне инсталлятора;
  • UserInfoPage — при значении yes, установка отобразит страницу для ввода информации о пользователе. Полученные значения будут в константах и ;
  • DefaultUserInfoName — имя пользователя, которое предложит инсталлятор по умолчанию;
  • DefaultUserInfoOrg — название организации, которое предложит инсталятор по умолчанию;
  • UsePreviousUserInfo — использовать имя пользователя, название организации и серийный номер, которые ввел пользователь при предыдущей установке;
  • UninstallRestartComputer — перезагрузить компьютер после удачного удаления программы;
  • PrivilegesRequired — установка доступна только от имени администратора;
  • Compression — параметры сжатия. Если есть необходимость использовать внешний архиватор, значение Compression нужно установить в “none”;
    • AlwaysRestart — после успешной установки компьютер перезагрузится;
  • RestartIfNeededByRun — компьютер будет перезагружен только если в этом нуждаются файлы, запускаемые из секции [Run];
  • UsePreviousAppDir — использовать папку, которую пользователь выбрал при прошлой установке;
  • UsePreviousGroup — использовать группу меню “Пуск”, которую указал пользователь при прошлой установке;
  • UsePreviousSetupType — использовать тип и компоненты предыдущей установки;
  • UsePreviousTasks — использовать задания, выбранные пользователем при предыдущей установке;
  • WizardImageFile — картинка, которая будет отображаться на завершающем экране инсталлятора (должна находиться в каталоге, обозначенном как SourceDir, либо к ней должен быть прописан полный путь). Изображение должно быть в формате .bmp и иметь размер не более 164x314px. Ранее эта картинка отображалась также и на приветственном экране, но по рекомендациям microsoft приветственного экрана желательно избегать;
  • WizardImageStretch — если установлено “yes” (не рекомендуется), по умолчанию изображения мастера установки будут растянуты или сжаты, до размера требуемого контейнера. Если установлено значение “no”, изображения мастера будут центрироваться в соответствующих областях. (Это соответствует поведению Inno Setup 4.1.2 и более ранних версий по умолчанию);
  • WizardImageBackColor — назначает цвет фона за картинкой. Возможные значения:
    • clRed (красный);
    • clYellow (желтый);
    • clOlive (оливковый);
    • clLime (ярко зеленый);
    • clGreen (зеленый);
    • clTeal (салатовый);
    • clAqua (зелено-голубой);
    • clBlue (ярко-синий);
    • clNavy (синий);
    • clPurple (фиолетовый);
    • clFuchsia (розовый);
    • clMaroon (коричневый);
    • clBlack (черный);
    • clGray (серый);
    • clSilver (серебряный);
    • clWhite (белый);
  • WizardSmallImageFile — маленькая картинка, во время инсталляции будет находиться в правом верхнем углу;
  • WizardSmallImageBackColor — назначает цвет фона за маленькой картинкой. Возможные значения такие же как у большой;
  • WindowVisible — если установлено “yes”, появится окно градиентного фона, отображаемое за мастером. Обратите внимание, что эта директива считается устаревшей и, вероятно, будет удалена в какой-то момент в будущем;
  • BackColor — начальный цвет градиентной заливки окна, отображаемого за мастером (WindowVisible);
  • BackColor2 — конечный цвет градиентной заливки заливки окна, отображаемого за мастером (WindowVisible);
  • BackColorDirection — направление градиентной заливки (WindowVisible);
  • BackSolid — по умолчанию “no”(градиентная заливка включена). При значении “yes” цвет фона будет сплошным и равным BackColor;
  • WindowShowCaption — если установлено значение “no”, программа установки будет действительно «полноэкранным» — у нее не будет панели заголовка или границы, и она будет поверх панели задач. Эта директива не действует, если WindowVisible не установлен на “yes”.
  • WindowVisible — если установлено “yes”, фоновое окно программы установки будет первоначально отображаться в максимизированном состоянии, не перекрывая панель задач. Эта директива не действует, если WindowVisible не установлен на “yes”;
  • WindowResizable — если установлено значение “no”, пользователь не сможет изменить размер фонового окна программы установки, когда он не будет максимальным. Эта директива не действует, если WindowVisible не установлен на “yes”;
  • FlatComponentsList — если для этой директивы установлено значение “yes”, программа установки будет использовать плоские флажки для списка компонентов. В противном случае программа установки будет использовать флажки “3D”;
  • AppCopyright — указывает сообщение об авторском праве, которое будет отображаться в правом нижнем углу фонового окна программы установки, когда параметр WindowVisible установлен в значение “yes”. Значение этой директивы также используется в качестве значения по умолчанию для директивы VersionInfoCopyright, если оно не указано;
  • SetupIconFile — задает значок инсталлятора. Файл должен быть расположен в исходной папке вашей установки при запуске компилятора установки, если не указано полное имя пути или имя пути префикс «компилятор:», и в этом случае он ищет файл в каталоге компилятора;
  • ShowComponentSizes — если для этой директивы установлено значение “yes”, программа установки покажет размер компонента в списке компонентов. В зависимости от самого большого компонента программа установки будет отображать размеры в килобайтах или в мегабайтах;
  • ShowTasksTreeLines — если для этой директивы установлено yes, программа установки покажет «древовидные линии» между родительскими и подзадачами;
  • UninstallDisplayIcon — значок для деинсталлятора в диалоге “Установка и удаление программ” Панели управления;
  • UninstallDisplayName — название программы в диалоге “Установка и удаление программ” Панели управления;
  • UninstallFilesDir — указывает каталог, в котором хранятся файлы «unins *. *» для деинсталлятора. Не стоит менять это значение при обновлении программы, иначе программа установки не найдет журналы удаления из предыдущих версий и, следовательно, не сможет их добавить;
  • UninstallIconFile — иконка, которая будет отображаться в правом верхнем углу окна удаления;
  • UninstallStyle — стиль деинсталлятора;
  • DisableStartupPrompt — если установлено “yes”, программа установки не покажет сообщение «Эта программа установит… на ваш компьютер…». Этот параметр не действует, если UseSetupLdr установлен на “no”.

[Types]

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

[Components]

Эта секция не является обязательной. Здесь определены все компоненты, которые будут отображаться на странице «Выбор компонентов» мастера, для настройки типа установки. Комбинируется с секцией [Types]. Если в секции [Components] перечислены компоненты, а секции [Types] не существует, типы установки будут созданы инсталлятором автоматически, и могут быть не такими, как вам хотелось бы.

[Tasks]

Опциональная секция. Предоставляет пользователю возможность отметить задачи, которые он хотел бы выполнить во время установки. Эти задачи отображаются как флажки и переключатели на странице «Выбор дополнительных задач».Сами по себе задачи ничего не делают. Необходимо помечать какое-то действие в других секциях кодом Task: taskName; Такие действия будут выполнены, только если пользователь выбрал задачу на соответствующей странице.

В секции [Tasks] описывается задание. В окне инсталлятора оно появится после удачной установки приложения, перед страницей “Установка завершена”, и будет иметь вид строки, значение которой определит параметр Description. Задание выполнится, если пользователь поставит флажок в начале этой строки.

В секции [Icons] описывается, куда следует поместить ярлык, как ярлык будет озаглавлен и (по желанию) как он будет выглядеть, для какого именно файла он создается. Параметр Tasks секции [Icons] вызывает задание, описанное в секции [Tasks].

Для запуска каких-либо файлов секция [Tasks] не подходит — для этого существует секция [Run].

Этот необязательный раздел определяет любые дополнительные каталоги помимо каталога приложений, который создается автоматически.
Обратите внимание, что вам не требуется явно создавать каталоги перед установкой файлов в них с помощью раздела [Files], поэтому этот раздел в первую очередь полезен для создания пустых каталогов. Пример, приведенный ниже, создает пустую папку “data” и “bin” в папке с приложением.

[Files]

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

Если устанавливаемый файл является файлом ReadMe, инсталлятор после удачной установки приложения может предложить пользователю прочесть этот файл. Для этого используется флаг isreadme секции [Files], но файл ReadMe пользователь сможет прочитать, только если после установки компьютер не будет перезагружен.

Также файлы секции [Files] могут иметь атрибуты: «системный» (system), «только для чтения» (readonly) и «скрытый» (hidden). За атрибуты файла отвечает параметр Attribs, и если он не указан, то файл не будет иметь вообще никаких атрибутов.

[Icons]

Секция определяет ярлыки приложения, которые необходимо создать в меню «Пуск» и/или в других местах, например на рабочем столе. Следует помнить, что если ярлыки указаны только в секции [Icons], они будут создаваться всегда. Если для ярлыка, задан еще и параметр Tasks в секции [Tasks] , то ярлык будет создан, только если пользователь выберет соответствующее задание при установке программы).

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

В этом примере Filename – имя INI-файла (с расширением .ini). Section – имя секции INI-файла (в полученном INI-файле будет заключено в квадратные скобки). Key – ключ INI-файла. String – значение ключа Key (строка).

[UninstallDelete]

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

Для того, чтобы не перечислять все однотипные файлы, которые следует удалить при установке или удалении программы, можно использовать «маску»:

В этом примере удалятся все файлы с расширением .ini. Задание «масок» для инсталлятора то же, что и для Windows: * — префикс (суффикс) любой длины, ? – префикс (суффикс) из одного символа и т.д.

[Languages]

Раздел определяет языки, доступные в программе установки.

[Messages]

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

[CustomMessages]

Раздел используется для определения значений сообщений для констант .

[LangOptions]

Секция используется для определения языковых настроек, таких как шрифты, используемые программой установки и деинсталлятором. Как правило, вам не нужно создавать раздел [LangOptions] в вашем файле сценария, так как по умолчанию настройки, зависящие от языка, извлекаются из файла Default.isl, включенного в Inno Setup.

Если перед параметром секции [LangOptions] не указан идентификатор языка, инсталлятор применит их ко всем языкам, заданным в секции [Languages] (кроме параметров LanguageName и LanguageID). Для того, чтобы изменения затронули только конкретный язык, перед параметром следует указать префикс (идентификатор языка и точку):

[Registry]

Этот необязательный раздел определяет любые ключи/значения реестра, которые необходимо создавать, изменять или удалять в системе пользователя во время установки.
По умолчанию ключи реестра и значения, созданные программой установки, при деинсталляции не удаляются. Чтобы при деинсталляции удалялись ключи или значения, необходимо добавить один из следующих флагов uninsdelete.

ValueType – тип значения. Может быть следующим:

  • none – значение по умолчанию. Инсталлятор создаст пустой ключ без параметра; ValueName и ValueData при этом игнорируются;
  • string – инсталлятор создаст строковый параметр (REG_SZ);
  • expandsz – инсталлятор создаст расширенную строку. Используется, например, чтобы дописать значение к уже существующему. (REG_EXPAND_SZ);
  • multisz – инсталлятор создаст многостроковый параметр (REG_MULTI_SZ);
  • dword – инсталлятор создаст целочисленный параметр (REG_DWORD);
  • binary – инсталлятор создаст двоичный параметр (REG_BINARY).

Если параметр ValueType равен string, expandsz или multisz, это будет строка, которая может содержать константы.
Если тип данных dword, это будет десятичное («123»), шестнадцатеричное («$7B»), или константа, представляющая собой целое число.
Если тип данных binary — последовательность шестнадцатеричных – десятичных байтов в форме: «00 ff 12 34».
Если тип данных none, параметр игнорируется.

Раздел является необязательным. В этой секции можно указать любое количество программ для выполнения после того, как программа была успешно установлена, но до того, как программа установки отобразит окончательный диалог. Раздел [UninstallRun] также является необязательным, и указывает любое количество программ для выполнения в качестве первого этапа удаления. Оба раздела имеют одинаковый синтаксис, если не указано иное.

Программы выполняются в том порядке, в котором они отображаются в скрипте. По умолчанию при обработке записи [Run] / [UninstallRun] программа установки / удаления будет ждать завершения программы до перехода к следующей, если не используются флаги nowait, shellexec или waituntilidle.

Pascal scripting (современный Delphi-подобный Pascal) добавляет множество новых возможностей для настройки вашей установки или удаления. Например:

  • поддержка прерывания установки или деинсталляции запуска в пользовательских условиях;
  • поддержка добавления пользовательских страниц мастера в программу установки во время выполнения;
  • поддержка для извлечения и вызова DLL или других файлов из сценария Pascal до, во время или после установки;
  • поддержка скриптовых констант, которые могут выполнять любые обычные константы, константы read-from-registry, read-from-ini и read-from-commandline, могут делать еще больше;
  • поддержка временного удаления типов, компонентов и / или задач;
  • поддержка условной установки записей [Files], [Registry], [Run] и т.д.

Pascal scripting делает почти все, что делает сама программа Inno и может делать еще больше.

Флаги

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

[Registry]

  • uninsdeletevalue — удаляет значения ключа при деинсталляции;
  • deletekey — позволяет перед созданием нового ключа удалить уже существующий ключ со всеми его дочерними ключами, параметрами и значениями;
  • deletevalue — позволяет перед созданием нового параметра в ключе удалить уже существующий параметр того же типа и с тем же именем;
  • preservestringtype — если тип существующего параметра реестра не string или expandsz (т.е. не REG_SZ или REG_EXPAND_SZ), то он будет заменен строковым параметром с заданным значением, а если тип существующего параметра string или expandsz, заменится только его значение, а тип останется;
  • uninsclearvalue — при удалении приложения параметр в реестре установится в пустую строку (с типом REG_SZ);
  • uninsdeletekey — при удалении приложения удаляет ключ реестра со всеми его дочерними ключами, параметрами и значениями;
  • uninsdeletekeyifempty — при удалении приложения ключ реестра удалится, только если он пустой;
  • uninsdeletevalue — при удалении приложения удалится параметр реестра и его значение;
  • dontcreatekey — используется в ситуациях, когда при установке уже существующий параметр в ключе реестра следует заменить новым, а если ключ или параметр не существует — не создавать ни ключа, ни параметра;
  • createvalueifdoesntexist — инсталлятор создаст в ключе реестра параметр с заданным значением только в том случае, если он не существует. Не применяется с флагом deletevalue.
  • deleteafterinstall — указывает инсталлятору создать папку, но после успешной установки или, если установка прервана, удалить ее, если она пустая. Если в папке будут содержаться файлы, с помощью этого флага она не удалится;
  • uninsalwaysuninstall — указывает деинсталлятору всегда пытаться удалять папку (если она пустая), даже если она уже существовала до начала установки приложения;
  • uninsneveruninstall — указывает деинсталлятору не удалять папку при удалении программы — обычно при удалении программы деинсталлятор удаляет все папки, которые были созданы инсталлятором при установке (если они пустые).

[Files]

  • ignoreversion — установить файл, который, возможно, уже установлен на компьютере пользователя и имеет более позднюю дату создания, т.е. является более новым (в этом случае инсталлятор по умолчанию оставит существующий файл);
  • promptifolder — по умолчанию, когда установленный файл имеет более старый номер версии, чем существующий файл, программа установки не заменит существующий файл. Когда этот флаг используется, программа установки спросит пользователя, следует ли заменять файл;
  • allowunsafefiles — отключает автоматическую проверку компиляторами для небезопасных файлов. Настоятельно рекомендуется, НЕ использовать этот флаг, если вы не уверены, что знаете, что делаете;
  • comparetimestamp — использование этого флага не рекомендуется, кроме как в крайнем случае, потому что в нем есть неотъемлемая проблема: разделы NTFS хранят отметки времени в UTC (в отличие от разделов FAT). Время будет сдвигаться всякий раз, когда пользователь изменяет часовой пояс своей системы или когда переход на летнее/зимнее время. Это может создать ситуацию, когда файлы заменяются, когда это не нужно или не заменяются, когда это нужно;
  • confirmoverwrite — всегда запрашивать у пользователя подтверждение перед заменой существующего файла;
  • onlyifdestfileexists — файл должен заменить уже установленный на компьютере пользователя файл с тем же именем, а если такого файла в системе пользователя нет, то вообще не устанавливаться. Этот флаг полезен в том случае, когда вы создаете инсталлятор для обновления (апдейта) уже установленной у пользователя программы. Но следует помнить, что пользователь может переименовать некоторые файлы программы, и тогда обновление не установится, даже если пользователь установил программу;
  • onlyifdoesntexist — установить файл, только в случае, если он еще не существует;
  • overwritereadonly — всегда перезаписывать файл, помеченный атрибутом “только для чтения”. Без этого флага программа установки будет запрашивать у пользователя, должен ли быть перезаписан существующий файл “только для чтения”;
  • replacesameversion — если уже установленный и устанавливаемый файлы имеют одну версию, по умолчанию инсталлятор не заменит уже установленный файл. Если установленный файл должен быть заменен (что рекомендуется), используется этот флаг;
  • nocompression — если задать отдельному файлу флаг nocompression, то инсталлятор не будет сжимать только заданный файл.
  • uninsdeleteentry — используется для того, чтобы при удалении программы удалялся определенный ключ в заданной секции;
  • uninsdeletesection — показывает, что при удалении программы должна удалиться заданная секция со всеми ее ключами и их значениями;
  • uninsdeletesectionifempty — используется для того, чтобы при удалении программы удалялась только пустая секция;
  • createkeyifdoesntexist — ключ с заданным именем будет создан только в том случае, если до установки он не существовал.
  • shellexec — применяется для файлов, которые не являются исполняемыми (.exe или .com) или командными (.bat или .cmd). С этим флагом файл запустится с помощью программы, принятой по умолчанию для его типа (например, файл ReadMe.txt будет отображен на странице Блокнота). Флаг shellexec не определяет, выполнилась программа или нет, поэтому его следует комбинировать с флагами nowait (инсталлятор не будет ждать, пока запущенный файл выполнится, и сразу перейдет к следующему параметру секции) или waituntilidle (в этом случае установка будет приостановлена для того, чтобы пользователь смог ввести необходимые данные);
  • postinstall — используется для того, чтобы пользователь мог выбрать, какие файлы он хочет запустить, а какие нет. С помощью параметра Description можно указать комментарий к каждому из представленных на выполнение файлов. Если он не указан, инсталлятор будет использовать стандартный комментарий;
  • unchecked — по умолчанию файл, помеченный таким флагом, будет не выбран;
  • hidewizard – во время выполнения программы окно инсталлятора будет скрыто;
  • unhidden – выполняемая программа (или файл) запустится в свернутом окне. Не следует использовать этот флаг для программы, при выполнении которой потребуется участие пользователя (например, он должен будет ввести какие-либо данные);
  • runmaximized – программа (файл) запустится в развернутом окне;
  • runminimized – программа (файл) запустится в свернутом окне;
  • skipifnotsilent — указывает инсталлятору не запускать файл при обычной (не ускоренной) установке;
  • skipifsilent — указывает инсталлятору не запускать файл при быстрой и очень быстрой установке;
  • skipifdoesntexist — не выдавать сообщение об ошибке, если запускаемый файл не существует.

Константы

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

Ниже приведен список используемых в Inno Setup констант:

  • — папка установки, которую пользователь выбирает на странице «Выбор места назначения» мастера;
  • — каталог ОС Windows. «C:\WINDOWS»;
  • — системная папка Windows. В 64-битной Windows по умолчанию путь System32, возвращаемый этой константой, сопоставляется с каталогом, содержащим 32-битные системные файлы, как и на 32-разрядной Windows. (Это может быть отменено путем включения 64-битного режима.);
  • — это фактический каталог, в котором находятся 32-разрядные системные файлы. В 32-битной Windows 32-разрядные системные файлы находятся в «System32» или «System», а не в отдельной директории SysWOW64, поэтому эта константа будет ссылаться на тот же каталог, что и . Не рекомендуется использовать эту константу, если нет конкретной потребности в получении имени фактического каталога, в котором находятся 32-разрядные системные файлы;
  • — указывает на корневую папку диска, где установлена ​​Windows, обычно «C:». Эта константа каталога эквивалентна переменной среды SystemDrive;
  • — путь к каталогу Program Files;
  • — путь к каталогу Common Files;
  • — временная директория, используемая программой установки или удаления. Это не значение переменной среды TEMP пользователя. Это подкаталог временного каталога пользователя, который создается при установке или удалении при запуске (с именем типа «C: \ WINDOWS \ TEMP \ IS-xxxxx.tmp»). Все файлы и подкаталоги в этом каталоге удаляются при завершении установки или удаления;
  • — каталог шрифтов. Обычно называется «FONTS» в каталоге Windows;
  • — DAO. Это эквивалентно \ Microsoft Shared \ DAO;
  • — 32-разрядный корневой каталог .NET Framework версии 1.1.
    Если будет предпринята попытка обратиться к этой константе в системе без .NET Framework версии 1.1. будет брошено исключение;
  • — корневой каталог .NET Framework версии 2.0-3.5. эквивалентен , если установка не выполняется в 64-битном режиме, и в этом случае она эквивалентна ;
  • — 32-разрядная корневая директория .NET Framework версии 2.0-3.5;
  • — только 64-разрядная версия Windows: 64-разрядная корневая директория .NET Framework версии 2.0-3.5;
  • — .NET Framework версии 4.0 и более поздней версии. эквивалентно , если установка не выполняется в 64-битном режиме, и в этом случае она эквивалентна ;
  • — 32-разрядная версия .NET Framework версии 4.0 и более поздней версии;
  • — только 64-разрядная версия Windows: 64-разрядная версия .NET Framework версии 4.0 и более поздняя;
  • — путь к папке «Пуск», выбранный пользователем на странице «Выбор папки« Меню «Пуск» меню «Настройка». Эта папка создается в профиле «Все пользователи», если пользователь, устанавливающий приложение, не имеет административных прав, и в этом случае он создается в профиле пользователя;
  • — путь к локальной папке Application Data;
  • & — путь к папке Application Data;
  • — путь к каталогу общих файлов текущего пользователя. Только Windows 7 и более поздние версии поддерживают ; если он используется в предыдущих версиях Windows, он переводится в тот же каталог, что и \Programs\Common;
  • & — путь к папке рабочего стола;
  • & — путь к папке «Мои документы»;
  • & — путь к папке «Избранное»;
  • — путь к каталогу Program Files текущего пользователя. Только Windows 7 и более поздние версии поддерживают ; если он используется в предыдущих версиях Windows, он будет переводиться в тот же каталог, что и \Programs;
  • — позволяет дополнить уже существующее значение параметра реестра, если его ValueType равен string, expandsz, или multisz.

Заключение

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

Можно также выбрать Run -> Run, тогда скрипт скомпилируется и сразу начнется установка приложения.
В меню Help -> Inno Setup Example Scripts можно найти несколько примеров того, как этот инструмент позволяет настроить установщик, чтобы он выполнял ту или иную задачу.
Вообще, документация и FAQ, которые прилагаются к редактору скриптов, составлены очень понятно и подробно, там можно найти решение большинства основных задач. Есть и русскоязычные форумы, где происходит обсуждение скриптов инсталлятора, особенностей их создания. Там можно найти много интересных примеров или попросить совета. А когда все начнет получаться — делиться своими знаниями, а может даже и похвастаться своими успехами.

Илон Маск рекомендует:  Что такое код hw_children
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL