XPlode - это утилита, которая поможет установить программы в процессе установки Windows XP / 2003. Она будет, прежде всего, полезна тем людям, которые устанавливают большое количество приложений на Т-13(12), и хотят иметь возможность наблюдать за ходом установки отдельных приложений и общим прогрессом процесса.
Также это удобный способ сделать установку приложений вашего дистрибутива по-настоящему красивой и элегантной. Выглядит это примерно так:
Основные возможности XPlode
- Исполнение и установка программ
- Добавление пользователей и групп
- Копирование, перемещение и удаление файлов и папок
- Создание ярлыков
- Внесение информации в реестр, а также чтение из реестра для создания переменных окружения
- Управление службами и другие возможности.
К приятным особенностям можно отнести: опциональное скрытие дочерних окон при установке приложений (идеально для консольных окон), наличие собственных переменных окружения, облегчающих установку программ с диска, и полностью настраиваемый интерфейс.
Установка программы
Установка проста до безобразия. Загрузите программу, запустите инсталлятор, укажите куда распаковать. И все - можете работать.
Состав программы:
Функциональные плагины:
- XPlodeExecute.x4e - плагин для запуска внешних приложений
- XPlodeAcctMgmt.x4e - плагин для работы с пользователями и группами
- XPlodeFileOps.x4e - плагин для операциями с файлами и папками
- XPlodeRegistry.x4e - плагин для работы с реестром
- XPlodeMisc.x4e - плагин для запуска/остановки служб и др. функций
Плагины для управления режимами и внешним видом программы:
- XPlodeGFXInstall.x4d – красивая установка с возможностью прозрачного интерфейса
- XPlodeOriginalInstall.x4d – основной вид
- XPlodeSelectInstall.x4d – режим выбора устанавливаемых программ
- XPlodeSilentInstall.x4d – «тихий» режим, без интерфейса
Я использую только XPlodeGFXInstall.x4d поэтому все остальные удаляю за ненадобностью
В папке images лежат примеры картинок.
В папке selection – скрипты для плагина XPlodeSelectInstall.x4d
Запуск Xplode
Параметры командной строки.
Xplode понимает следующие ключи запуска
/xml: - Позволяет задать произвольное имя файла конфигурации, по умолчанию XPlode.xml
Напр. XPlode.exe /xml:#XPLODE#\XPlode.xml
/log: - Указывает на log-файл
Напр. XPlode.exe /log:#XPLODE#\XPlode.log
/console – Выводить действия программы на экран.
Напр. XPlode.exe /console
Запускать XPlode можно с жесткого диска, если поместить программу в папку $OEM$\$1\, или что предпочтительней, с CD диска, для чего нужно поместить программу в папку $OEM$\XPlode и прописать следующую строку в cmdlines.txt:
[COMMANDS]
XPlode\XPlode.exe
ИЛИ
Добавьте следующие строчки в файл SVCPACK.INF
[SetupHotfixesToRun]
XPlode.exe
Файлы Xplode положите в папку I386\ SVCPACK
В данной строке отсутствует параметр /xml потому, что файл настроек по умолчанию имеет имя XPlode.xml
Работа с программой
Для работы потребуется редактор, способный работать с кодировкой Unicode. В противном случае в программе не будут отображаться текст на русском языке (если использовать только латинский шрифт, то можно обойтись и Блокнотом).
Создание файла конфигурации.
Файл конфигурации состоит из следующих секций
<XPlode>
<config>
Здесь задаются параметры самой программы (шрифт, цвет, картинки, размер и положение),
а также служебная информация о плагинах и заголовок окна.
</config>
<items>
Здесь задаются непосредственно параметры работы программы
(что ставится, переписывается, каких пользователей добавлять и т. д.).
</items>
</XPlode>
Секция <config> подробно расписана в примере, который рассматривается в конце статьи, так что сначала изучим команды.
Основные команды программы
Выполнение внешнего приложения
Чтобы запустить внешнюю программу (тихую установку), нужно между тегами <items> и </items> вставить следующие строки.
<item display="Virtual Machine Additions">
<!-- описание пункта установки, появляется в процессе выполнения -->
<execute display='Virtual Machine Additions'>
<!-- описание пункта установки, появляется в процессе выполнения -->
<program>C:\DRIVERS\VM\virtualmachineadditions.msi</program>
<!-- исполнимый файл программы (необх. указывать с путем если лежит не в системных папках) -->
<arguments>REBOOT=ReallySuppress</arguments>
<!-- параметры командной строки (обязательно указывать здесь, если указать в предыдущем пункте программа не выполнится) -->
<hide>false</hide>
<!-- сокрытие окна программы и всех дочерних окон -->
<wait>True</wait>
<!-- не ожидать окончания установки текущего пункта, начинать следующий -->
</execute>
</item>
Чтобы добавить пользователя в систему нужно между тегами <items> и </items> вставить следующие строки.
<item display="Adding users and groups..."> <!-- название пункта установки (может быть любое) -->
</addgroup>
<adduser > <!-- добавляем пользователя -->
<username > Spike </username > <!-- имя -->
<password> swordfish </password > <!-- пароль -->
<group> Administrators </group > <!-- к какой группе относится -->
<extra> /COMMENT: Its them bounty hunters! </extra > <!-- комментарий -->
</adduser >
</item>
Чтобы скопировать папку I386 на жесткий диск в паку Inst, нужно между тегами <items> и </items> вставить следующие строки.
<item display="Copying Post-Installation Files">
<!-- Думаю, все понятно: указывается источник, назначение и маска. Работает для файлов и директорий-->
<fileio-copy display="CopyingFiles desc=Copies*.* from #SOURCEDRIVE#\i386 to #SYSTEMDRIVE#\i386">
<from>#SOURCEDRIVE#\i386\</from>
<dest>#SYSTEMDRIVE#\inst\i386\</dest>
<mask>*.*</mask>
<recurse>True</recurse>
<replace>true</replace>
</fileio-copy>
</item>
Обратите внимание на отсутствие пробелов при указании путей внутри тегов <from> и <dest> (с пробелами копироваться ничего не будет).
Чтобы внести изменения в реестр (например, изменить путь к дистрибутиву, сделать его с:\inst\i386), нужно между тегами <items> и </items> вставить следующие строки.
<item display="Writing to registry…"> <!-- название пункта установки (любое) -->
<registry mode="write">
<!-- Запись информации в реестр в формате REG-файлов, т.е. можно поместить сюда свои параметры реестра из REG-фалов.
Не забудьте удалить первую строчку REGEDIT4 (Windows Registry Editor Version 5.00) -->
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"SourcePath"="%SYSTEMDRIVE%\inst\i386\"
</registry >
</item >
Пример файла конфигурации
Теперь, когда вы познакомились с основными командами XPlode, давайте рассмотрим конфигурацию на примере плагина XPlodeGFXInstall.x4d. Загрузите файл по этой ссылке - в коде вы найдете подробные комментарии. В примере демонстрируется, каким образом можно задействовать различные команды XPlode, которые подробно описаны ниже.
Подробное описание команд и их параметров
Команда | Описание |
<execute> | Выполнить внешнее приложение |
<AddUser> | Добавить пользователя |
<AddGroup> | Добавить группу |
<DelUser> | Удалить пользователя |
<DelGroup> | Удалить группу |
< fileio-copy > | Копировать файлы |
< fileio-move > | Переместить файлы |
< fileio-delete > | Удалить файлы |
< fileio-rename> | Переименовать файлы |
< fileio-rmdir > | Удалить каталоги |
<fileio-mkdir> | Создать каталог |
<fileio-shortcut> | Создать ярлык |
< sfcos-disable > | Выключить Windows File protection |
< sfcos-enable > | Включить Windows File protection |
< netstart > | Запустить сервис |
< netstop > | Остановить сервис |
< hidewindow > | Скрыть окно |
< showwindow > | Показать окно |
< sleep > | Пауза |
Параметры, которые используются командой <execute>
Параметр | Описание | Обязательный параметр |
Program | Путь к программе, которую нужно запустить | Да |
Arguments | Список параметров | Нет |
Hide | Определять, необходимо ли скрывать окно запускаемого приложения | Нет |
Wait | Дожидаться выполнения текущего приложения | Нет |
Workdir | Определяет рабочую папку | Нет |
Параметры, которые используются командой <adduser>
Параметр | Описание | Обязательный параметр |
Username | Имя будущего пользователя | Да |
Password | Пароль, который надо установить пользователю | Да |
Extra | Дополнительные параметры, которые используются командой net user | Нет |
Group | Группа в которую добавить пользователя | Нет |
Параметры, которые используются командой <addgroup>
Параметр | Описание | Обязательный параметр |
Groupname | Имя будущей группы | Да |
Extra | Дополнительные параметры, используемые командой net localgroup | Нет |
Параметры, которые используются командой <DelUser>
Параметр | Описание | Обязательный параметр |
Username | Имя пользователя, который будет удален | Да |
Параметры, которые используются командой < DelGroup >
Параметр | Описание | Обязательный параметр |
Groupname | Имя группы, которая будет удалена | Да |
Параметры, которые используются командами < fileio-copy > и < fileio-move >
Параметр | Описание | Обязательный параметр |
From | Источник | Да |
Dest | Результат | Да |
Mask | Маска | Нет |
Recurse | Обрабатывать вложенные каталоги | Нет |
Replace | Заменять файлы | Нет |
Параметры, которые используются командой < fileio-delete >
Параметр | Описание | Обязательный параметр |
From | Источник | Да |
Mask | Маска | Нет |
Recurse | Обрабатывать вложенные каталоги | Нет |
Параметры, которые используются командой < fileio-rename>
Параметр | Описание | Обязательный параметр |
From | Источник | Да |
Dest | Результат | Да |
Replace | Заменять файлы | Нет |
Параметры, которые используются командой < fileio-rmdir >
Параметр | Описание | Обязательный параметр |
From | Источник | Да |
Параметры, которые используются командой <fileio-mkdir>
Параметр | Описание | Обязательный параметр |
directory | Каталог который нужно создать | Да |
Параметры, которые используются командой <fileio-shortcut>
Параметр | Описание | Обязательный параметр |
Link | Каталог, который нужно создать | Да |
target | | Да |
arguments | | Нет |
description | | Нет |
workdir | | Нет |
Icon | | Нет |
Параметры, которые используются командами < hidewindow > и < showwindow >
Параметр | Описание | Обязательный параметр |
Class | Обработка окон по классу | Да* |
Title | Обработка окон по заголовку | Да* |
*Тут используется либо Class, либо Title
Команды < sfcos-disable > и < sfcos-enable > требуют пропатчивания sfc_os.dll. Как это делается - не знаю, поэтому не тестировал.
Команды < netstart > и < netstop > отвечают за запуск и остановку сервисов, соответственно.
Пример использования:
<XPlode4 >
<items>
<item>
< netstart > ServiceName </ netstart >
<netstop > ServiceName </netstop >
</item >
</items >
< /XPlode4>
Команда <Sleep>
Позволяет приостановить выполнение программы на N секунд
Пример использования:
<XPlode4 >
<items>
<item>
<Sleep> 120 </ Sleep >
</item >
</items >
< /XPlode4>
Заключение
С помощью XPlode во время установки Windows можно решить множество различных задач - установку приложений, импорт параметров в реестр, создание пользователей и другие. В статье рассмотрены лишь основные возможности XPlode - те, которые я использую сам, однако функциональность программы намного шире.
Желаю удачи в изучении программы и в работе с ней!
Обсуждение статьи на форуме