Наиболее частый вопрос, который мне задают — как сделать свою программу инсталляции? А когда я расспрашиваю подробнее мне объясняют, что нужна просто красивая программка, которая скопирует файлы из одного места в другое. Поэтому я решил написать статью, где соберу многое из того, что писал ранее (и это есть на VBStreets). мы напишем программу, которая будет устанавливать файлы.
Сразу извиняюсь за некоторую сумбурность и непоследовательность повествования, просто у меня сейчас ОЧЕНЬ мало времени. поэтому здесь лежит пример.
Чем мне нравится идея написания собственного инсталлятора, так это тем. что вы не ограничены и можете засунуть сюда множество своих функций, и пишется инсталлятор как обычная программа.
Теперь объясняю идею — надо написать программу, которая может извлекать, копировать (добавлять запись в system.ini и в реестр и т.д.). Но все это мелочи . Основная идея — все файлы держать в ресурсах как бинарные, а потом извлекать их куда надо.
Количество форм программы может быть любым, но я не рекомендую делать их слишком много, чтобы не злить и без того злого юзверя. Для того, чтобы формы появлялись там, где надо, мы будем их настраивать так:
Как сделать свой установщик на пк в 2022 году
При нажатии кнопки Далее>> (или Next>>), можете назвать так, как хотите.
frmNext.Show frmNext.Height = Me.Height frmNext.Width = Me.Width 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 = «Свободно на диске: » » 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 » Ошибка, однако.», 16, «Setup» End Sub
Можете добавлять еще что-нибудь. Это же я так для примера.
Создания установщика для своей разработки в Visual Studio #6
Потом идет диалог, установка. Там делаем такую вещь:
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 — переносите файлы туда, куда надо.
Источник: codenet.ru
Инсталлятор программ. Smart Install Maker. Создаем установщик
В настоящее время появляется все больше инди-разработчиков, которые создают свое собственное программное обеспечение для компьютеров . Однако, чтобы продукт выглядел качественным, необходимо продумать все до мелочей, в том числе и систему установки программы.
Конечно, тратить время на написание собственных инсталляторов никто не хочет, поэтому на рынке появляется все больше специализированных утилит, которые все сделают за вас. Нацелены они на разные аудитории (от профессиональных студий до простого разработчика) и дают целевому пользователю именно то, что ему необходимо.
Вот почему гораздо более практично создавать установочную флешку или внешний диск, чтобы помочь вам быстрее установить систему, и текущая версия системы всегда будет доступна. Однако сначала необходимо установить установочную флешку — недостаточно просто скопировать файлы и дождаться, когда загрузчик начнет процесс установки. Более продвинутые пользователи будут довольны несколькими командами командной строки, но для большинства пользователей некоторые из специализированных программ будут более универсальными.
Делаем инсталлятор
Нужно чтобы копировался файл — Если «Windows x86» то в «system32», а если «Windows x64» то в «SysWOW64», пользователю лишних вопросов не задавало.
В статье используются программы:
Для начала конечно устанавливаем «CreateInstall free» 🙂
После установки запускать помощника не надо.
Запускается приложение, и для начала нужно определиться как будет называться наш проект.
И укажем откуда для него брать файлы (для компиляции). В эту папку будем всё пихать; картинки, файлы.
И конечно же будем добавлять деинсталлятор. Мы же не ламеры какие.
Кстати, в программе на редкость хорошая справочная система.
Нажимаем «Ок» открывается программа. удивительно :bug:
«Вывод» «Директория вывода» это то место где появиться наша скомпилированная программа.
Для начала укажем путь установки по умолчанию:
Закладка «Проект» там «Установки» «Путь установки»
И «Язык инсталляции» выбираем «Русский» (нужный).
То место куда по умолчанию будет установлена программа.
Но! Туда же будет положен деинсталлятор. т.е. Если остальное куда класть мы сможем указать, до деинсталлятор положиться именно сюда. Поменять это нельзя.
Всё остальное оставил по умолчанию.
Переходим на закладку «Скрипт установки»
Смотрим на всё это. и удаляем 🙂 (это в моём случае)
Для начала, нужно поменять дефолтные картинки, чтоб отображалась (одна и та же) на всех этапах установки.
Не забываем, что кладём их в папку проекта.
На папке «Установка» «Установки диалога» «Левая картинка» выбираем файл нашей картинки. (Можно и для каждого этапа свою задать)
Переходим на закладку «Скрипт деинсталляции»
Там тоже меняем картинку
Ничего удалять не будем.
Источник: www.fafofu.ru