Windows Post-Installation Wizard (WPI)
(обзор версии 3.3.5 - мой, при участии EgOrus)
Сайты программы 1 или 2
Форум на MSFN
Я использую именно эту программу.
Если вы будете устанавливать приложения с CD, то совершенно не важно, куда распаковывать архив с программой - лишь бы входил в ваш дистрибутив. Для установки с жесткого диска лучше всего распаковать в $OEM$\$1\install\.
Запуск WPI вызывает окно как на скриншоте выше, где пользователь может выбрать желаемые приложения и начать их запуск нажатием на кнопку Begin Install. Ранние версии WPI конфигурировались через *.js файлы. Теперь к этой опции добавлена приятная возможность управления настройками WPI и конфигурацией устанавливаемых приложений прямо через интерфейс WPI.
Русификация
Я дополнил перевод файла lang.js, который делал ранее EgOrus. Также, я перевел на русский язык элементы интерфейса, отвечающие за настройки WPI и конфигурацию приложений. Предлагаю скачать все необходимые файлы сразу. Содержимое архива нужно распаковать в директорию WPI и согласиться на перезапись файлов. Архив также включает мой файл config.js для примера. Oстальное - в readme. Дальнейший рассказ о WPI будет основан на русском интерфейсе. Если вы предпочитаете английский, то, вероятно, вы и сами разберетесь с оригинальными настройками WPI.
Настройка
Нажав кнопку Настройка (Options) вы попадете в окно, позволяющее настроить внешний вид WPI. Изменения внесенные через интерфейс WPI сохраняются в файле wpiscripts\useroptions.js при нажатии кнопки Сохранить (Save). Прочесть текущий файл useroptions.js позволяет кнопка Перечитать из файла (Read)
Русский интерфейс включает объяснения элементов настройки, так что я не буду подробно останавливаться на этом. Замечу, впрочем, некорректное отображения списка приложений при разрешении экрана 1152х864. Именно по этой причине в моем примере разрешение выставлено в 1024х768. Проблему мне решить не удалось, даже прописывая 1152х864 специально в конфигурационных файлах. Я не силен в JavaScript, но и на MSFN никто решения проблемы не привел. Вы можете выставить разрешение по умолчанию, и посмотреть правильно ли отображается список приложений.
Конфигурация
Нажав кнопку Конфигурация (Options) вы попадете в окно, позволяющее сконфигурировать устанавливаемые приложения. Изменения внесенные через интерфейс WPI сохраняются в файле wpiscripts\config.js при нажатии кнопки Сохранить (Save) внизу окна. За добавление приложений отвечает кнопка Добавить (Add), а прочесть текущий файл config.js может кнопка Перечитать (Read).
Элементы интерфейса переведены на русский язык, а вот их назначение я постараюсь объяснить ниже. Список сконфигурированных приложений отображается слева. При клике на приложение вы переходите к конфигурационному окну. Рассмотрим его на примере приложения Daemon Tools.
Название | название приложения в списке |
Порядковый номер | жестко задает порядковый номер установки приложения |
Oписание | описание, отображаемое во всплывающей подсказке при наведении курсора на название |
Идентификатор | уникальный идентификатор (нужен для зависимостей и/или исключений) |
По умолчанию | приложение выбрано сразу при запуске WPI |
Принудительно | приложение будет установлено, даже если пользователь нажал Выход |
Kатегория | категория, к которой относится приложение (задается пользователем) |
Зависит от | вводятся идентификаторы приложений, от которых будет зависеть устанавливать ли данное приложение. Выбор родительского приложения повлечет установку данного приложения. В моем конфигурационном файле АnyDVD зависит от CloneDVD. Если пользователь выберет CloneDVD, то и AnyDVD будет установлено. |
Исключения | вводятся идентификаторы приложений, взаимоисключаемых с данным приложением. В моем конфигурационном файле есть Office Custom и Office Full. Конечно, я не хочу, чтобы пользователь установил оба, следовательно я делаю их взаимоисключаемыми. Если выбран Office Custom, то Office Full уже выбрать нельзя и наоборот. |
Условие | условие JavaScript для установки приложения (я с этим не разбирался) |
В реестр до | вводится путь к *.REG файлу, который импортируется до установки приложения. По сути встроенная команда REGEDIT /S |
Команда 1 | Каждому приложению можно задать до шести команд (не считая импорта ключей реестра). В моем примере команда устанавливает DaemonTools |
Команда 2 | устанавливает приложение DaemonScript |
Kоманда 3 | через заранее созданный скрипт DaemonScript конфигурируется количество виртуальных дисков |
Команда 4 | запускает *.INF файл, добавляющий к контекстному меню ISO файлов опцию Mount (монтируется через DaemonTools) |
Kоманда 5 | Удаляет DaemonScript, он мне не очень-то и нужен. |
Команда 6 | ну не хватило у меня фантазии на шестую команду для одного приложения :) |
В реестр после | вводится путь к *.REG файлу, который импортируется после установки приложения. По сути встроенная команда REGEDIT /S |
Удалить | удаляет приложение из списка |
Вот таким образом конфигурируются все приложения. В файле config.js они будут отсортированы по алфавиту.
Запуск
После того, как вы настроите внешний вид WPI и устанавливаемые приложения, надо будет прописать команду на запуск WPI, скажем в [GuiRunOnce]. Достаточно указать путь к файлу wpi.cmdt, входящем в архив с программой или запустить wpi.hta иным способом. При первом входе в систему пользователь увидит окно WPI с выбором приложений для установки. Определившись с выбором, пользователь жмет Начать установку (Begin Install), после чего появится окошко, которое поблагодарит за пользование WPI.
После нажатия ОК начнется установка приложений. Окно это можно отключить, найдя в файле generate.js строку
window.alert(getText(msgStartInstall));
и откомментировав ее следующим образом (спасибо, EgOrus)
/* window.alert(getText(msgStartInstall)); */
Примечания
Я использовал переменную %cdrom% в командах для установки приложений с CD. WPI умеет назначать переменную %cdrom% самостоятельно, действуя по следующему принципу. Проверяются все диски с типом cdrom на наличие файла WIN51. Если таковой находится, то переменной назначается соответствующая буква, в противном случае считается текущий полный путь файла wpi.hta, и поднимается по папкам до корня диска. Если и там нет файла WIN51, то переменная %cdrom% берется из ключа реестра HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Setup\\SourcePath. В старой версии были, впрочем, и грабли, на которые наступили и я и EgOrus - %cdrom% в командах нельзя писать заглавными буквами. Иными словами, WPI не поняла %CDROM%. Насчет других переменных я не проверял, но думаю, что и %systemdrive% тоже лучше заглавными не писать. С тех пор с регистром букв переменных я не экспериментировал.
Преимущества: красивый графический интерфейс; выбор желаемых приложений и запуск их всех одной кнопкой; выбор приложений по умолчанию; запуск WPI с уже выбранными приложениями по умолчанию; "насильственная" установка приложений, даже если пользователь выходит из программы; возможность группировать приложений по категориям и устанавливать порядок установки приложений; экспортирование ключей реестра до или после установки приложений; таймер.
Недостатки: некорректная работа с разрешением 1152х864 (и возможно с другими). Других не замечено. Лично мне теперь трудно себя заставить попробовать другие программы :)
T12
Автор - Вячеслав Ситников (sve(at)kmscom.ru)
Tема на OSZone
Скачать программу и документацию
Обзор основан на документации к версии 1.х программы. Сверьтесь с документацией, т.к. с выходом новой версии возможны расхождения обзора с реальностью :)
30 января 2005. Версия 2.0 бета
(+) Добавлена возможность автоматического генерирования unattended инсталляций приложений. Полностью поддерживает операции с реестром, только добавление файлов и создание каталогов для дисковых операций, не поддерживаются изменения ini и текстовых файлов. Доживем до следующей версии?
(+) Добавлен lng файл для многоязычной поддержки
(+) У программы появилась иконка, спасибо Денису Шиверскому (mustsee(at)mail.ru)
(+) Добавлена проверка на наличие WinRar при генерировании инсталлятора (+) Добавлены предупреждения о том, что программа не зависла и отсутствии WinRar, соответственно изменен lng файл
(*) Удалены ключи /allselectgroup, /noselectgroup и /welcome за ненадобностью.
(*) Ключ /defaultgroup определяет группу по умолчанию при выборе программ
(*) Программа cmdow более не нужна
(*) Изменено описание
(-) Исправление ошибки при запуске файлов по относительному смещению от текущего каталога при запуске T12.exe (..\_Other\other.cmd), так как после запуска программы через /run или при исполнении группы файлов now.cmd, каталог после перемещения на очередной now.cmd не восстанавливался в каталог, с которого была запущена T12.exe (а не в котором T12.exe находится!).
Программа на отсчете T-12 выводит окошко на 60 секунд (настраиваемо) с предложением выбрать приложения, которые необходимо установить. Если сделать выбор, то счетчик обратного отсчета останавливается. Можно выбирать также профили из выпадающего списка. По умолчанию присутствует всегда три профиля - "Default" ( оставляет выделение, как указано в cmd файле, о котором чуть ниже), "All Select" (выделяет все элементы), и "No Select" ( снимает выделение со всех элементов). Можно также добавлять профили пользователя, прописав их в настройках cmd файла.
Программа сканирует файлы в каталога Software в корне диска. Каталог можно изменить в командной строке или ini файле. Допускается любая вложенность (в неразумных пределах не проверял). То есть для инсталляции новой приложения не нужно ничего править и ничего поправлять, просто переписать каталог приложения в каталог Software в корне диска. Порядок установки приложений происходит по алфавитному названию каталога и регистрозависим. То есть установка из каталога abc произойдет позже, чем из каталога aBz.
Каталоги, начинающиеся с подчеркивания, не сканируются. Ну и вложенные в них, соответственно, тоже. Сделано для быстрого отключения элементов.
Для инсталляции программы инсталлятор должен быть сформирован в виде полностью законченного cmd файла, который должен установить приложение, внести изменения в реестр, убрать мусор за собой. При запуске cmd файла выставляются переменные окружения %localpath% (путь к программе без последнего закрывающего обратного слеша, например: "D:\Software\AcdSee") и %CDROM% (буква диска CD-ROM'а с двоеточием в конце, например "F:") и каталог программы становится каталогом по умолчанию. Пример такого cmd файла:
-= Начало файла "D:\Software\Antivirus\Nod 32 Antivirus\v2.12\nod32.cmd" =-
REM DESCRIPTION NOD32 Antivirus v2.12 rus
REM DEFAULT ON
REM VISIBLE ON
REM HINT Best Antivirus
REM GROUP Programming;user;designer
; Настройки
start /wait T12.exe /convert nod32.reg /set
; Конвертируем основной реестр под нужный диск установки
start /wait T12.exe /convert nod32base.reg /set
; Конвертируем реестр, где указывается путь к обновлениям
start /wait T12.exe /convert uninst.xml "%PROGRAMFILES%\Eset\Setup\uninst.xml"
; Конвертируем XML установки, для нормальной деинсталляции.
start /wait nod32.exe
; Распаковываем саму программу
start /wait system32.exe
; Распаковываем системные файлы
start /wait user.exe
; Распаковываем файлы меню и рабочего стола
del "%AllUsersProfile%\Рабочий стол\NOD32.lnk"
; Удаляем иконку со стола
EXIT
-= Конец файла =-
Т12 - единственная программа в обзоре, требующая отдельного конфигурационного файла для каждого приложения. Все настройки содержатся в REM строках. Подробнее о параметрах DESCRIPTION, DEFAULT, VISIBLE, HINT и GROUP можно прочитать в документации к программе.
Начиная с точки отсчета T-12 и до окончания инсталляции приложений (первая перезагрузка после первого входа в систему) программа копирует себя в каталог SYSTEM32 (для облегчения исправления файлов реестра, чтобы не писать путь), а также выставляет переменную окружения CDROM, в которой указывается буква диска с двоеточием с которого ведется инсталляция. После установки удаляет себя из SYSTEM32 и убивает переменную окружения.
Подробнее обо всех функциях Т12, параметрах командной строки и тонкостях работы с программой читайте в документации. Я лично программу не тестировал, но (исходя из документации) по гибкости конфигурирования она заметно превосходит Post. Я пообещал автору попробовать программу, т.к. ее функциональность весьма заманчива.
Преимущества: запуск на Т-12, графический интерфейс; выбор желаемых приложений и запуск их всех одной кнопкой; выбор приложений по умолчанию; возможность задавать категории приложений; таймер; возможность генеририровать автоматические инсталляции приложений, подробная документация на русском языке.
Недостатки: мне неизвестны; возможно, графический интерфейс не слишком впечатляет.