Руководство по созданию собственной установочной сборки Windows 8


Введение

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

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

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

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

Руководство по созданию собственной установочной сборки Windows 8

Введение

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

Текст рассчитан на начинающих пользователей, поэтому объясняются и иллюстрируются порой простейшие вещи.

Ресурсы

Нам понадобятся по ходу работы следующие артефакты

Образ установочного диска Windows 8 в формате ISO

Я сделал свой выбор в пользу Windows 8 Enterprise x64.
Объясню почему. Выбор редакции Enterprise обусловлен максимальной функциональностью, которую обеспечивает эта редакция.

Но в принципе, для домашнего использования возможно использовать и редакцию Professional, тут по желанию.

Аппаратная платформа x64. Выбор 64-х битного варианта системы обусловлен несколькими критически важными факторами. 1. Для 32-х битной системы (x86) доступно только 3,24 Гб адресного пространства оперативной памяти. Сегодня, 4 Гб — это не так и много. И многие новые ноутбуки и стационарные ПК продаются с объемом памяти 6 Гб и выше. Поэтому выбор однозначен в пользу 64-х битной системы, которая не имеет таких ограничений. Более подробно о различиях редакций Windows 8 можно прочитать на сайте Microsoft.

2. Полученный нами образ скорее всего будет размером больше чем 4Гб. Мой установочный образ с «джентельменским» набором программ (включая и MS Office 2013) занимает 7,5 Гб. При установке 32-х битного варианта Windows, если размер образа будет занимает больше чем 4Гб, то будет выдаваться ошибка. При использовании установки 64-х битного варианта, таких проблем нет. Те, кто захочет создать свою сборку на основе 32-х битного образа установки Windows, имейте ввиду этот факт. В этом случае размер развернутого дистрибутива со всеми установленными программами должен занимать ориентировочно около 12 Гб, и тогда в дальнейшем, при его компрессии в конечный установочный образ, его размер будет не больше 4-х Гб.

Оценочные 90-дневные версии Windows 8 можно скачать по ссылке с сайта Microsoft Или официальные, доступные для подписчиков MSDN.

Диспетчер виртуальных машин VirtualBox

Я использую виртуальную машину для установки первоначального образа системы и дальнейшей настройки программ, так как это наиболее удобный и быстрый способ который существенно позволяет сэкономить время. Скачать VirutualBox можно на официальном сайте Oracle VM VirtualBox. Сам установочный пакет диспетчера виртуальных машин, на текущий момент актуальная версия VirtualBox 4.2.12 for Windows hosts x86/amd64 И по желанию, можно скачать пакет дополнения VirtualBox 4.2.12 Oracle VM VirtualBox Extension Pack All supported platforms

Утилита Imagex

С помощью этой утилиты мы создадим конечный образ нашей сборки, пригодный для установки на других компьютерах. Эта утилита входит в набор Комплект средств для развертывания и оценки Windows (ADK) для Windows 8 (сокращенно WAIK for Windows 8). Комплект занимает больше 2,5 Гб. Нам же в данном случае будет достаточно только утилиты Imagex, скачать ее можно по этой ссылке imagex.zip(~590 Кб)

Конструктор RDS Boot KIT и комплект Recovery DiskSuite

Это очень мощный конструктор, позволяющий создать загрузочную флешку, на которой по желанию можно разместить одновременно различные реаниматоры такие как HirensBootCD, LiveCD, Kaspersky Rescue Disk, и др., а так же, дистрибутивы операционных систем — WinXP, Win7 и Win8. Главное чтобы хватило место на флеш-накопителе. Аналогов на текущий момент ему нет ни в рунете, ни на «загнивающем» западе :).
Необходимо скачать последнюю версию конструктора RDS Boot KIT с сайта https://disksuite.ru/ и по желанию, сам набор Recovery DiskSuite, включающий в себя iso образы различных реаниматоров и дистрибутивов. Я предпочитаю использовать собственные проверенные образы, а не те, что идут в комплекте с Recovery DiskSuite. На всякий случай даю ссылку на версию конструктора, работа с которым описана в руководстве RDS Boot KIT.zip.

Флеш накопитель 8Gb и больше

Флешка объемом 8Gb — это минимум, но тут действует правило — чем больше, тем лучше. Такого объема, кстати, может и не хватить, если будет устанавливаться множество программ. Я приобрел объемом 32Gb, но теперь понимаю, что надо было 64Gb, чтобы поместилось больше собственных сборок дистрибутивов других версий Windows.

~50Gb свободного места на HDD, как минимум

Одним и из преимуществ использования виртуальной машины, является то, что можно создавать моментальные снимки состояния виртуальной машины, и в дальнейшем возвращаться к любому из этих снимков. Своеобразная машина времени. Я делал снимки после прохождения каждого этапа создания собственной сборки. И если где-то делал ошибку, то возвращался к предыдущему снимку и уже делал без ошибок. Но платой за это удобство выступает дополнительное место на жёстком диске, которое требуется для снимков.
Если скачать все полные дистрибутивы, и не скупиться на снимках состояния виртуальной машины, то желательно иметь около 100GB свободного места на жестком диске.

Этапы работы

1. Подготовительный этап
. Установка и настройка диспетчера виртуальных машин. Создание и настройка самой виртуальной машины; 2.
Установка Windows
на виртуальной машине и перевод установки Windows в режим аудита; 3.
Работа в режиме аудита
. На этом этапе необходимо произвести обновление системы, установку и настройку программ, системы и профиля пользователя. После завершения этих действий, следует осуществить выход и из режима аудита и перевести Windows в штатный режим установки; 4.
Подготовка конечного образа
собственной установочной сборки Windows; 5.
Запись собственной установочной сборки
на флешку.

#1. Подготовительный этап

1. Устанавливаем VirutualBox, следуя шагам мастера установки. После установки запускаем диспетчер витуальных машин, идем в настройки Файл->Настройки и настраиваем в соответствии со следующей презентацией: (На данный момент Slidershare глючит, даю ее ссылку на эту презентацию в GoogleDrive) Настройка диспетчера виртуальных машин
Сначала мы устанавливаем порядок загрузки, указав устройство CD/DVD-ROM в качестве первого устройства на котором будет искаться загрузочная запись и с которого будет осуществляться загрузка. Далее мы в привод CD/DVD-ROM виртуальной машины подключаем ранее сказанный нами образ установки Windows 8 Enterprise x64. И на третьем слайде мы подключаем к нашей виртуальной машине флеш-накопитель, который предварительно должны подключить к нашему основному компьютеру. В дальнейшем нам предстоит с ним работать из виртуальной машины. Его название может отличаться от того, что на скриншоте. Это зависит от модели флеш-накопителя.

2. Создаем новую виртуальную машину, следуя указаниям мастера. Процесс создания ВМ и настройки ее параметров можно посмотреть на следующей презентации.

Настройки создания виртуальной машины

Оперативную память виртуальной машине необходимо выделять в зависимости от объема ОЗУ доступного для основной системы, чем больше выделим, тем быстрее будет работать виртуальная машина. Но желательно оставить основной системе как минимум 2Гб ОЗУ. У меня, к примеру, 12Гб, 6 Гб я выделяю на виртуальную машину, 6 оставляю основной системе.

#2. Установка Windows

1. После создания виртуальной машины, запускаем ее, автоматически начнется установка Windows, далее в процессе установки необходимо выбирать параметры, как показано в следующей презентации. Установка Windows
По окончании копирования файлов и завершению установки, произойдет автоматическая перезагрузка, появиться экран первоначальной настройки системы (Персонализация), где нам необходимо выбрать цвет оформления и наименование компьютера. Здесь целесообразно создать снимок виртуальной машины, чтобы в дальнейшем мы могли в любой момент вернуться к этому состоянию, или скопировать его в новую виртуальную машину, чтобы не тратить лишний раз время на установку системы. Для этого переходим в окно диспетчера виртуальных машин, и нажимаем кнопки команд, указанных на скриншоте ниже. Я назвал полученный снимок «Windows установлена».

Далее нам необходимо перевести установку Windows в режим аудита. Для этого возвращаемся в окно виртуальной машины на экране настройки первоначальных параметров (Персонализация) мы должны нажать комбинацию клавиш Ctrl+Shift+F3.

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

#3. Работа в режиме аудита

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

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

#2.1 Установка обновлений

В первую очередь рекомендуется установить последние обновления. Подразумевается, что компьютер, на котором запущена виртуальная машина подключен к интернету. Для этого нам необходимо будет включить автоматическое обновления и выполнить их установку. Нажимаем комбинацию клавиш Win(флажок Windows)+X и выбираем пункт -> Панель управления\Система и безопасность\Центр обновления Window. Процесс поиска, скачивания и установки обновлений показан в следующей презентации. После скачивания каждой порции доступных обновлений необходимо завершать работу системы, для их установки. Установка обновлений Windows
Поиск и установку обновлений необходимо выполнить несколько раз, так как некоторые обновления появляются только после установки предыдущих. До тех пор, пока не увидим сообщение о том что актуальных обновлений больше нет, как на скриншоте ниже:

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

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

#2.2 Установка приложений

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

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

Тут я рекомендую создать еще один снимок состояния виртуальной машины, и назвать его «Перед генерализацией»

#2.3 Генерализация Windows и переход в штатный режим установки

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

Для этого в создадим в блокноте файл с именем CopyProfile.xml, в который необходимо будет вставить следующий текст:

true 1

Или можете скачать готовый файл здесь CopyProfile.xml

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

Правой кнопкой мыши кликаем по значку USB устройства и в выпадающем меню выбираем нашу флешку. После подключения флешке заходим в проводник Windows и смотрим, какая буква ей присвоена. Запоминаем ее. У меня флешка подключилась под буквой E:\

Далее следует запустить командную строку: нажать комбинацию клавиш Win+R, в строке команд набрать cmd, после чего нажать кнопку ОК, как это показано на следующем скриншоте.

Откроется окно выполнения консольных команд, в котором необходимо запустить утилиту Sysprep c параметрами:

%systemroot%\system32\sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:E:\CopyProfile.xml

Где вместо буквы E в параметре /unattend:E:\CopyProfile.xml необходимо указать букву, присвоенную флешке подключенной к виртуальной машине.

Дальше идет процесс генерализации, по окончании которого виртуальная машина самостоятельно выключиться.

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

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

Настройка параметров персонализации пользователя

Ждем окончания настройки, пока будет создан профиль пользователя, после чего система загружается в штатном режиме готовая к работе. Теперь нам необходимо включить встроенную учетную запись Администратора и зайти под ней в систему. Опять нажимаем Win+X и в выпадающем меню выбираем пункт «Управление компьютером». Далее следуем пути: Служебные программы -> Локальные пользователи и группы -> Пользователи. В списке пользователей выбираем Администратора. Правой кнопкой — > Свойства. Снимаем галочку Отключить учетную запись. Жмем ОК.

Затем нам необходимо войти под учетной записью Администратора, которую мы только что включили. Нажимает комбинацию клавиш Правый Ctrl+Del(или в меню окна виртуальной машины выбираем пункты «Машина»->«Послать Ctrl+Alt+Del»), и выбираем пункт «Выход». Заходим в систему под Администратором, и открывыем как и в предыдущем действии список управления пользователями. На этот раз, нам требуется удалить созданного ранее нами пользователя. Выбираем его в списке, правой кнопкой мыши открываем выпадающее меню и в нем пункт Удалить. Два раза будет выдан запрос на подтверждение удаления, и два раза соглашаемся удалить этого пользователя.

Снова открываем консольное окно, и выполняем запуск утилиты sysprep со следующими параметрами:

%systemroot%\system32\sysprep\sysprep.exe /generalize /oobe /shutdown

По окончании виртуальная машина выключиться. Теперь все готово для того, чтобы снять окончательный образ установки Windows. Следует сделать еще один снимок состояния виртуальной машины. И назвать его — «Перед снятием образа».

#4. Подготовка конечного образа установочной сборки Windows

На этом этапе нам необходимо создать файл install.wim, в котором будет находиться наша установочная сборка Windows. Для этого включаем виртуальную машину. Тут надо быть внимательным и расторопным. Сразу после включения, в течении 5 секунд, появиться надпись «Press any key to boot from CD or DVD…», которая говорит нам о том, что необходимо нажать любую клавишу для загрузки установки Windows с виртуального CD/DVD привода. Надо успеть нажать любую клавишу, если вдруг не успеете, то можно закрыть виртуальную машину, восстановив снимок предыдущего состояния.

Если успели нажать вовремя, то загрузиться программа установки ОС Windows 8 с виртуального DVD. Ждем пока появиться окно приветствия и нажимаем комбинацию клавиш Shift+F10

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

Важно замечание — флешка должна быть отформатирована в формате NTFS, так как в отличие от FAT32, в этом формате файловой системы сняты ограничения на максимальный размер файлов в 4Gb, а скорее всего полученный нами образ будет занимать больше 7Гб. Чтобы отформатировать флешку, необходимо выбрать ее в проводнике основной системы, нажатием правой клавиши мыши вызвать выпадающее меню, в котором выбрать пункт «Форматировать…», и настроить параметры в соответствии с теми что указаны на скриншоте

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

После того, как подключили флеш накопитель к виртуальной машине, необходимо определить буквы дисков, на которых находиться настроенная нами Windows, и букву подключенной нами флешки. Если все делать как написано в этом руководстве, то диск с настроенной нами Windows будет находиться на диске D:\, а подключенная нами флешка под буквой F:\ Проще всего это проверить, перейдя на нужный диск, введя команду d: и нажав клавишу Enter, а после выполнив команду dir, которая покажет содержимое диска.

Так же следует проверить и диск F:

Чтобы снять образ, необходимо ввести в консоли команду

F:\imagex\x64\imagex.exe /capture D: F:\install.wim /flags «Enterprise» «Windows 8 Enterprise» «My Windows 8 Build» /compress maximum

Подробнее о Imagex можно прочитать на сайте Microsoft по этой ссылке — утилита Imagex.
F:\imagex\x64\imagex.exe – путь к утилите imageX /capture D: — параметр, указывающий что необходимо произвести захват раздела D: F:\install.wim — указываем путь к сохраняемому WIM-файлу, в который будет захвачен образ раздела D:. /flags «Enterprise» — флаг, обозначающий редакцию Windows 8. «Windows 8 Enterprise» — имя образа. «My Windows 8 Build» — (необязательно) описание образа /compress maximum — тип сжатия файлов в образе. Для параметра /compress допустимы значения maximum (максимальное сжатие), fast (быстрое сжатие) и none (без сжатия). Если параметр не указан, используется быстрое сжатие. Максимальное сжатие позволяет уменьшить размер образа, но захват занимает больше времени, чем при быстром сжатии. Скорость распаковки образа практически не зависит от типа сжатия.

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

После окончания снятия образа, у нас будет создан файл install.wim на флеш-накопителе. Можно выключить виртуальную машину, больше она нам не понадобиться. Файл install.wim следует скопировать на жесткий диск основного компьютера, мы с ним будет работать на следующем этапе, когда мы будет создавать загрузочную флешку, предварительно ее отформатировав.

#5. Создание загрузочного флеш-накопителя с собственной сборкой Windows

Для создания загрузочной флешки с собственной сборкой нам понадобиться конструктор RDS Boot KIT с сайта https://disksuite.ru/
Подробно, на нюансах работы этого конструктора я останавливаться не буду, с его помощью можно сделать очень мощный инструмент диагностики, реанимации и восстановления программной части любого компьютера и все это уместить на одном флеш-носителе.

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

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

Теперь необходимо разместить ISO образ установки Windows 8, с которого мы ранее устанавливали Windows на виртуальную машину, в папку конструктора по пути: RDS\Windows8\x64

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

Теперь у нас есть готовая загрузочная флешка. На следует заменить стандартный файл стандартной сборки Windows на созданный ранее нами. Для это на флешке по пути Windows8\x64 заменяем файл install.wim тем, который мы создали ранее на этапе #4. И еще один момент есть. Рядом с файлом Install.wim на флешке находится файл ответов автоматической установки Windows который называется AutoUnattend.xml. Его надо обязательно заменить, на созданный нами.

Для этого создаем в блокноте файл с именем AutoUnattend.xml и вставляем в него следующий текст:

ru-RU en-US;ru-RU ru-RU ru-RU ru-RU true 32 1280 800 en-US;ru-RU ru-RU ru-RU ru-RU true false false false false 1 false Central Asia Standard Time

Либо можно скачать уже готовый файл по этой ссылке AutoUnattend.xml

Вот и все, у нас есть готовая загрузочная флешка с собственным образом установки Windows. Который существенно сэкономит время на развертывание Windows.

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

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

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

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

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

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

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

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

Как сделать один проект для создания инсталляций у нескольких приложений

Справочная информация / Примеры

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

Как решить эту проблему? Инсталлятор CreateInstall имеет прекрасное средство для решения это задачи. Рассмотрим подробнее возможность Multi Build на небольшом примере. Предположим имеется три приложения My Application. Super Application, Best Application. Необходимо сделать один проект, который можно использовать для создания установок всех этих приложений.

Файлы всех приложений находятся в директориях c:\Applications\My Application, c:\Applications\Super Application и с:\Applications\Best Application. Запускаемые файлы myapp.exe, superapp.exe, bestapp.exe. Необходимо также автоматически получать версию из VERSION_INFO этих файлов. В процессе установки нужно показать соответствующий лицензионный файл, распаковать файлы в нужную директорию и создать ярлык для приложения. Также для Best Application необходимо вывести сообщение в процессе установки.

Шаг 1. Создаем простой проект и заходим в раздел Проект — Препроцессор и видим список Мультисборка. У нас у трех приложения отличаются имя приложения и имя исполняемого файла. Поэтому нам достаточно добавить две переменные appname и exename и заполнить соотвествующими значениями три колонки.

Определение переменных

Шаг 2. Заходим на страницу Проект — Вывод и определяем Имя запускаемого файла как $exename$-setup.exe. То есть у нас для каждого приложения будет свой файл установки. Например, для My Application будет myapp-setup.exe. Далее открываем страницу Проект — Информация о программе и устанавливаем следующие параметры:

Имя программы: $appname$ Версия: C:\Applications\$appname$\$exename$.exe Имя приложения: $appname$

Шаг 3. Открываем закладку Скрипт и укажем файл лицензии в команде Диалог — Лицензия как C:\Applications\$appname$\license.txt. Сейчас отредактируем команду Установочные файлы. Добавим туда путь к файлам приложения c:\Applications\$appname$\*.*. В процессе создания установки у нас будут упаковываться файлы из соответствующей директории. Также добавим ярлык в команду Ярлыки [Список]

Имя ярлыка: $appname$ Имя файла: $exename$.exe

Шаг 4. У нас стоит задача в установке Best Application показывать сообщение. В принципе, этот шаг добавлен, чтобы подробнее объяснить, как исключать некоторые команды для разных установок. Вставляем команду Исходный код с оператором ifdef. Если условие не выполняется, то внутренний код не будет учитываться при создании установки.

ifdef «$exename$» == «bestapp» { $body$ }

Далее внутри этой команды можем добавлять любые нужные нам действия.

Шаг 5. Мы закончили создание проекта. Сейчас рассмотрим как создавать установки для каждого приложения. Если вы просто запустите создание установки для данного проекта, то будет создана установка для первого приложения My Application.

Создание установок из инсталлятора CreateInstall

Выберите пункт меню Установка и затем подпункт Мультисборка. В открывшемся окне можно запустить создание установки для конкретного приложения или создать установки для всех приложения.

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

Создание установок из командной строки инсталлятора CreateInstall

Как известно, можно запускать создание установок из командной строки с помощью программы cicmd.exe. В данном случае, необходимо использовать параметр -m, где i — номер приложения

для создания инсталляции My Application
cicmd.exe -m1 «c:\projects\multi-build-installer.ci»
для создания инсталляции Best Application
cicmd.exe -m3 «c:\projects\multi-build-installer.ci»

Смотрите также

  • Как создать несколько установок из одного проекта

Eonza automation software — free, open source cross-platform program for easy creation and management of scripts.

Флаги

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

[Registry]

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

[Dirs]

  • deleteafterinstall – указывает инсталлятору создать папку, но после успешной установки или, если установка прервана, удалить ее, если она пустая. Если в папке будут содержаться файлы, с помощью этого флага она не удалится;
  • uninsalwaysuninstall – указывает деинсталлятору всегда пытаться удалять папку (если она пустая), даже если она уже существовала до начала установки приложения;
  • uninsneveruninstall – указывает деинсталлятору не удалять папку при удалении программы – обычно при удалении программы деинсталлятор удаляет все папки, которые были созданы инсталлятором при установке (если они пустые).

[Files]

  • ignoreversion – установить файл, который, возможно, уже установлен на компьютере пользователя и имеет более позднюю дату создания, т.е. является более новым (в этом случае инсталлятор по умолчанию оставит существующий файл);
  • promptifolder – по умолчанию, когда установленный файл имеет более старый номер версии, чем существующий файл, программа установки не заменит существующий файл. Когда этот флаг используется, программа установки спросит пользователя, следует ли заменять файл;
  • allowunsafefiles – отключает автоматическую проверку компиляторами для небезопасных файлов. Настоятельно рекомендуется, НЕ использовать этот флаг, если вы не уверены, что знаете, что делаете;
  • comparetimestamp – использование этого флага не рекомендуется, кроме как в крайнем случае, потому что в нем есть неотъемлемая проблема: разделы NTFS хранят отметки времени в UTC (в отличие от разделов FAT). Время будет сдвигаться всякий раз, когда пользователь изменяет часовой пояс своей системы или когда переход на летнее/зимнее время. Это может создать ситуацию, когда файлы заменяются, когда это не нужно или не заменяются, когда это нужно;
  • confirmoverwrite – всегда запрашивать у пользователя подтверждение перед заменой существующего файла;
  • onlyifdestfileexists – файл должен заменить уже установленный на компьютере пользователя файл с тем же именем, а если такого файла в системе пользователя нет, то вообще не устанавливаться. Этот флаг полезен в том случае, когда вы создаете инсталлятор для обновления (апдейта) уже установленной у пользователя программы. Но следует помнить, что пользователь может переименовать некоторые файлы программы, и тогда обновление не установится, даже если пользователь установил программу;
  • onlyifdoesntexist – установить файл, только в случае, если он еще не существует;
  • overwritereadonly – всегда перезаписывать файл, помеченный атрибутом “только для чтения”. Без этого флага программа установки будет запрашивать у пользователя, должен ли быть перезаписан существующий файл “только для чтения”;
  • replacesameversion – если уже установленный и устанавливаемый файлы имеют одну версию, по умолчанию инсталлятор не заменит уже установленный файл. Если установленный файл должен быть заменен (что рекомендуется), используется этот флаг;
  • nocompression – если задать отдельному файлу флаг nocompression, то инсталлятор не будет сжимать только заданный файл.

[INI]

  • uninsdeleteentry – используется для того, чтобы при удалении программы удалялся определенный ключ в заданной секции;
  • uninsdeletesection – показывает, что при удалении программы должна удалиться заданная секция со всеми ее ключами и их значениями;
  • uninsdeletesectionifempty – используется для того, чтобы при удалении программы удалялась только пустая секция;
  • createkeyifdoesntexist – ключ с заданным именем будет создан только в том случае, если до установки он не существовал.

[Run]

  • shellexec – применяется для файлов, которые не являются исполняемыми (.exe или .com) или командными (.bat или .cmd). С этим флагом файл запустится с помощью программы, принятой по умолчанию для его типа (например, файл ReadMe.txt будет отображен на странице Блокнота). Флаг shellexec не определяет, выполнилась программа или нет, поэтому его следует комбинировать с флагами nowait (инсталлятор не будет ждать, пока запущенный файл выполнится, и сразу перейдет к следующему параметру секции) или waituntilidle (в этом случае установка будет приостановлена для того, чтобы пользователь смог ввести необходимые данные);
  • postinstall – используется для того, чтобы пользователь мог выбрать, какие файлы он хочет запустить, а какие нет. С помощью параметра Description можно указать комментарий к каждому из представленных на выполнение файлов. Если он не указан, инсталлятор будет использовать стандартный комментарий;
  • unchecked – по умолчанию файл, помеченный таким флагом, будет не выбран;
  • hidewizard – во время выполнения программы окно инсталлятора будет скрыто;
  • unhidden – выполняемая программа (или файл) запустится в свернутом окне. Не следует использовать этот флаг для программы, при выполнении которой потребуется участие пользователя (например, он должен будет ввести какие-либо данные);
  • runmaximized – программа (файл) запустится в развернутом окне;
  • runminimized – программа (файл) запустится в свернутом окне;
  • skipifnotsilent – указывает инсталлятору не запускать файл при обычной (не ускоренной) установке;
  • skipifsilent – указывает инсталлятору не запускать файл при быстрой и очень быстрой установке;
  • skipifdoesntexist – не выдавать сообщение об ошибке, если запускаемый файл не существует.

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

2.4. Создание инсталлятора с использованием программ NSIS и EclipseNSIS

Создадим отдельный проект для инсталлятора, для этого вызываем мастер проектов из меню “ File->New->Project->General Project ”. Вводим наименование проекта “com.berdaflex.filearranger.installer” и нажимаем кнопку “ Finish ”.

Создадим заготовку инсталляционного скрипта при помощи мастера EclipseNSIS, для этого вызываем мастер из меню “ File->New->Other->EclipseNSIS->NSIS Script ”. Из списка доступных шаблонов выбираем классический инсталлятор “ Classic Installer ”.

Рисунок 5.6. Выбор классического инсталлятора

В следующем окне мастера вводим базовые атрибуты создаваемого инсталлятора:

  • Application Name: “Berdaflex File Arranger”;
  • Application Version: “0.1”;
  • Publisher Name: “Berdaflex Software Systems”;
  • Installer File: “FileArrangerSetup.exe”.

Укажем так же иконки для установки и удаления программы, что придает современный вид инсталлятору.

Одним из важных моментов при создании инсталлятора является указание уровня сжатия “ Compressor ” используемого для создаваемого инсталляционного файла. Сжатие позволяет уменьшить размер инсталлятора, что актуально для распространения программ через сеть Интернет. Доступные опции архиваторов zlip,bzip2 и lzma. Самую высокую степень сжатия позволяет достичь режим “ SetCompressor /SOLID lzma ”, но за это приходится платить более длительным временем на создание инсталлятора и его установку.

Рисунок 5.7. Ввод основных атрибутов проекта

Следующая страница мастера предлагает указать пути установки программы и группу меню. Оставим предложенные по умолчанию значения. При этом установка бутет производится в стандартный каталог “ Program Files ” в папку “ Berdaflex File Arranger ”. В меню будет создана группа “ Berdaflex File Arranger ”.

Программа создания инсталляторов NSIS содержит мульти-язычные ресурсы для отображения информации на разных языках. Выберем из списка поддержку Русского и Английского языков. Если включить галочку “Allow user to Select Language”, то при старте инсталлятора будет предложен выбор желаемого языка установки, в противном случае язык будет определяться по установкам операционной системы.

Рисунок 5.8. Выбор пути установки, группы меню и поддерживаемых языков

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

Рисунок 5.9. Настройка параметров отображения инсталлятора

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

Рисунок 5.10. Выбор контента для инсталляции

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

Рисунок 5.11. Выбор параметров поведения инсталлятора

Результатом работы мастера будет конфигурационный файл для создания инсталлятора программой NSIS (по умолчанию файл должен быть с расширением .nsi). Открываем данный файл редактором EclipseNSIS. Нам доступна подсветка синтаксиса, навигация по разделам, а так же панель с кнопками наиболее используемых операций для компиляции, тестирования инсталлятора, вызова файла справки и др.

Рисунок 5.12. Редактор скриптов EclipseNSIS

Есть возможность создания собственных диалогов для настройки различных параметров инсталлятора (по умолчанию данные файлы должен быть с расширением .ini). Редактор позволяет переключаться между визуальним и тектовым редактороми по нажатию клавиши F12.

Рисунок 5.13. Визуальный редактор диалогов EclipseNSIS

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

Константы

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

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

  • {app} – папка установки, которую пользователь выбирает на странице «Выбор места назначения» мастера;
  • {win} – каталог ОС Windows. «C:\WINDOWS»;
  • {sys} – системная папка Windows. В 64-битной Windows по умолчанию путь System32, возвращаемый этой константой, сопоставляется с каталогом, содержащим 32-битные системные файлы, как и на 32-разрядной Windows. (Это может быть отменено путем включения 64-битного режима.);
  • {syswow64} – это фактический каталог, в котором находятся 32-разрядные системные файлы. В 32-битной Windows 32-разрядные системные файлы находятся в «System32» или «System», а не в отдельной директории SysWOW64, поэтому эта константа будет ссылаться на тот же каталог, что и {sys}. Не рекомендуется использовать эту константу, если нет конкретной потребности в получении имени фактического каталога, в котором находятся 32-разрядные системные файлы;
  • {sd} – указывает на корневую папку диска, где установлена ​​Windows, обычно «C:». Эта константа каталога эквивалентна переменной среды SystemDrive;
  • {pf} – путь к каталогу Program Files;
  • {cf} – путь к каталогу Common Files;
  • {tmp} – временная директория, используемая программой установки или удаления. Это не значение переменной среды TEMP пользователя. Это подкаталог временного каталога пользователя, который создается при установке или удалении при запуске (с именем типа «C: \ WINDOWS \ TEMP \ IS-xxxxx.tmp»). Все файлы и подкаталоги в этом каталоге удаляются при завершении установки или удаления;
  • {fonts} – каталог шрифтов. Обычно называется «FONTS» в каталоге Windows;
  • {dao} – DAO. Это эквивалентно {cf} \ Microsoft Shared \ DAO;
  • {dotnet11} – 32-разрядный корневой каталог .NET Framework версии 1.1. Если будет предпринята попытка обратиться к этой константе в системе без .NET Framework версии 1.1. будет брошено исключение;
  • {dotnet20} – корневой каталог .NET Framework версии 2.0-3.5. {dotnet20} эквивалентен {dotnet2032}, если установка не выполняется в 64-битном режиме, и в этом случае она эквивалентна {dotnet2064};
  • {dotnet2032} – 32-разрядная корневая директория .NET Framework версии 2.0-3.5;
  • {dotnet2064} – только 64-разрядная версия Windows: 64-разрядная корневая директория .NET Framework версии 2.0-3.5;
  • {dotnet40} – .NET Framework версии 4.0 и более поздней версии. {dotnet40} эквивалентно {dotnet4032}, если установка не выполняется в 64-битном режиме, и в этом случае она эквивалентна {dotnet4064};
  • {dotnet4032} – 32-разрядная версия .NET Framework версии 4.0 и более поздней версии;
  • {dotnet4064} – только 64-разрядная версия Windows: 64-разрядная версия .NET Framework версии 4.0 и более поздняя;
  • {group} – путь к папке «Пуск», выбранный пользователем на странице «Выбор папки« Меню «Пуск» меню «Настройка». Эта папка создается в профиле «Все пользователи», если пользователь, устанавливающий приложение, не имеет административных прав, и в этом случае он создается в профиле пользователя;
  • {localappdata} – путь к локальной папке Application Data;
  • {userappdata} & {commonappdata} – путь к папке Application Data;
  • {usercf} – путь к каталогу общих файлов текущего пользователя. Только Windows 7 и более поздние версии поддерживают {usercf}; если он используется в предыдущих версиях Windows, он переводится в тот же каталог, что и {localappdata}\Programs\Common;
  • {userdesktop} & {commondesktop} – путь к папке рабочего стола;
  • {userdocs} & {commondocs} – путь к папке «Мои документы»;
  • {userfavorites} & {commonfavorites} – путь к папке «Избранное»;
  • {userpf} – путь к каталогу Program Files текущего пользователя. Только Windows 7 и более поздние версии поддерживают {userpf}; если он используется в предыдущих версиях Windows, он будет переводиться в тот же каталог, что и {localappdata}\Programs;
  • {olddata} – позволяет дополнить уже существующее значение параметра реестра, если его ValueType равен string, expandsz, или multisz.

Создание автономных инсталляторов — Tarma InstallMate 9.95.0.7518

Tarma InstallMate
— удобная программа для создания автономных инсталляторов, совместимых с любыми Windows 32/64-разрядными операционными системами или серверными платформами, с полной настройкой всех установочных действий и диалогов. Программа обладает красивым дизайном и простым в использовании интерфейсом, что позволяет быстро освоиться в ней даже новичкам. С помощью Tarma InstallMate профессионалы могут создавать инсталляторы с большим спектром настроек.

Системные требования:

Windows XP и Server 2003 (включая R2) Windows Vista и Server 2008 Windows 7 и Server 2008 R2 Windows 8 и 8.1, а также Server 2012 и Server 2012 R2 Windows 10 и сервер 2016-2019

Торрент Создание автономных инсталляторов — Tarma InstallMate 9.95.0.7518 подробно:

Познакомьтесь с
Tarma Installmate
— мощной программой для создания инсталляционных пакетов от австралийских разработчиков. С ее помощью вы сможете создать собственные автономные инсталляторы, работающие на всех версиях Windows всех разрядностей, в том числе и в серверных ОС . После запуска программы перед вами предстанет ее интерфейс с очень подробной настройкой вашего будущего инсталлятора, начиная от его разрядности и совместимости с различными платформами и заканчивая внешним видом самого инсталлятора (иконки, картинки, сообщения и прочее).Если сравнивать с аналогами, то Installmate — нечто среднее между Installshield и Advanced Installer по функциям. Разработчики заявляют, что InstallMate имеет уникальную «фишку» — полностью изолированные для каждого пользователя установки. Наиболее важное различие в InstallMate при установке в профиль текущего пользователя и установки в профиль «текущего пользователя» других инсталляторов заключается в следующем: В большинстве инсталляторов при установке в профиль текущего пользователя устанавливаются только ярлыки для текущего пользователя; остальная часть продукта устанавливается в рамках всей системы. Непривилегированные пользователи не могут устанавливать эти продукты вообще.В InstallMate же такие установки полностью изолированы друг от друга, и также изолированы от любого профиля All Users. Непривилегированные пользователи могут установить продукт для себя.Кроме того, большинство других инсталляторов не может работать с несколькими, взаимно изолированными установками одного и того же продукта для разных пользователей на одну систему, и они также не могут справиться с установкой от имени непривилегированных пользователей.Помимо тонкой и детальной настройки практически каждой функции будущего инсталлятора в программе поддерживается и очень широкий выбор prerequisites (условий или требований компонентов, напр. различные сборки NET и т.д.).

Процедура лечения

1.Из папки Rus копируем файл Tin с заменой по пути C:\Program Files\InstallMate 9\BinX64 2.Копируем в корень программы Patch-Tarma.InstallMate.9.x по пути C:\Program Files\InstallMate 9 и запускаем от имени Админа. 3.Копируем содержимое из папки Keygen в корень программы C:\Program Files\InstallMate 9 и запускаем от имени Админа , генерируемый ключ автоматически копируется в буфер обмена , вам остаётся только вставить его в поле регистрации .
Примечание:
Русификатор для версии программы x 64 , автор русификатора
Sher
Скриншоты Создание автономных инсталляторов — Tarma InstallMate 9.95.0.7518 торрент:

Скачать Создание автономных инсталляторов — Tarma InstallMate 9.95.0.7518 через торрент:

Начинаем знакомство с инсталлятором CreateInstall

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

Начнем с запуска инсталлятора CreateInstall и создадим там новый проект. В окне создания проекта вы можете указать название программы, исходную директорию с файлами программы и опцию добавления деинсталлятора в вашу установку. Все эти параметры не являются обязательными, вы всегда можете указать или изменить их в дальнейшем в настройках проекта. Давайте укажем только имя программы My Application и о (Include Uninstaller). После того, как нажмем на кнопку OK будет создан новый проект и вы увидите три закладки: Project, Install Script, Uninstall Script.

Создание нового проекта

Перейдем на закладку Install Script, где находится сценарий нашей установки. Слева вы видите список всех команд, которые можно использовать в сценарии установки. По умолчанию, команды разбиты на группы, но их можно просматривать и в виде общего списка. Если для вашей версии CreateInstall какие-то команды недоступны, то они будут выделяться серым цветом. В полной версии вы можете использовать все команды. Команды добавляются в сценарий по двойному нажатию мышки или при нажатии на кнопку Добавить, расположенную над списком.

На средней панели расположен сам сценарий установки. Список команд представлен в виде дерева, так как некоторые команды могут сдержать в себе другие. Команды можно копировать, вставлять, удалять, а также отключать и включать (если команда отключена, то она показывается серым цветом). Справа выводятся все параметры для текущей команды сценария. Аналогично организована закладка Uninstall Script, в которой происходит редактирования скрипта деинсталляции. Таким образом, вы можете полностью контролировать не только сценарий установки, но и сценарий удаления программы с компьютера пользователя. Ваша установка будет выполнять только те команды и в том порядке, как это указано в вашем сценарии.

Закладка Project содержит несколько страниц с общими настройками вашего проекта. Например, на первой странице Output можно указать имя установочного файла и директорию, куда он будет записан (по умолчанию, установки создаются в папке c:\setups ). Давайте укажем в качестве имени файла my-setup.exe. Для создания первой установки мы не будем разбирать все параметры проекта, вы можете сделать это самостоятельно. У каждой команды и страницы в правом верхнем углу есть ссылка Помощь, по которой вы можете перейти к соответствующей справке.

Project — Output

Сейчас перейдем непосредственно к изменению скрипта установки на закладке Install Script. Самое главное, нам нужно указать необходимые файлы приложения, которые нужно установить. Найдем в списке команд уже добавленную команду Installation Files и укажем там директорию с вашей программой. Создайте директорию c:\My Application и скопируйте туда несколько файлов. Эту директорию мы и укажем в качестве исходной директории с файлами, которые нужно включить в установку.

Установочные файлы

Уже сейчас вы можете создать и получить готовую инсталляцию для программы My Application. По умолчанию, опция добавления деинсталляции включена при создании нового проекта. Предположим, мы хотим создать ярлык для нашей программы myapp.exe, которую мы устанавливаем. Встаем на команду Shortcus[List] в скрипте установки и добавляем туда один элемент с именем ярлыка My Application и запускаемым файлом myapp.exe.

Ярлыки

Наш проект готов. Запускаем создание нашей установки и проверяем результат. После запуска инсталляции my-setup.exe вы должны увидеть примерно такой сценарий. Диалоговое окно с приветствием Диалоговое окно с выбором пути Диалоговое окно установки Диалоговое окно об успешном завершении

Сейчас можно проверить работу деинсталлятора. Зайдите в меню Пуск — Все программы — My Application и запустите Удалить (Uninstall). Также вы можете запустить удаление приложения в Панели Управления — Установка и удаление программ.

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

Смотрите также

  • Введение
  • Сравнение инсталляторов

Eonza automation software — free, open source cross-platform program for easy creation and management of scripts.

Рейтинг
( 2 оценки, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]