Продолжение: Добавление приложений к Windows XPE Live CD
Для того чтобы добавить приложения и утилиты к Live CD нужно сначала найти соответствующий плагин или создать его самостоятельно. Как минимум, плагин состоит из *.INF файла и непосредственно файлов приложения, для которого он создан. Плагины публикуемые на различных сайтах могут содержать сразу все необходимые файлы, а могут подразумевать, что приложение у вас есть, и его файлы вы скопируете в нужное место самостоятельно. Этим "нужным местом" является папка plugins. Как правило, в ней создается папка с названием приложения, в которую в свою очередь кладутся все необходимые файлы. Это общепринятая практика, и ниже я поясню почему.
В принципе, pebuilder сканирует всю директорию plugins в поисках INF файлов, и теоретически не важно где их размещать. Однако, в INF файле как минимум содержится информация, необходимая для добавления файлов приложения к LiveCD. Информация о файлах приложения указывается в INF файле относительно его текущего расположения, так что логично разместить и INF файл и файлы приложения в одной и той же папке. Это особенно имеет смысл при большом количестве плагинов - каждый будет аккуратно расположен в своей отдельной папке.
Удобство авто-плагинов Reatogo в том, что они автоматически копируют нужные файлы приложений в нужное место и создают соответствующий INF файл. Попросту говоря, авто-плагины делают за вас абсолютно всю работу.
Примечание: приложение должно быть установлено на вашей системе и зарегистрировано, если необходимо.
Выберите нужный плагин и загрузите его
Распакуйте архив в папку plugins
Запустите пакетный файл (*.bat или *.cmd), который находится в папке files плагина
Все необходимые файлы программы будут скопированы в эту папку
В INF файл плагина будет добавленa необходимой информацией из реестра
Вот как выглядит INF файла плагина для популярного файлового менеджера TotalCommander после использования авто-плагина Reatogo.
Код:
|
; totalcmd.inf
; PE Builder v3 plug-in INF file for Total Commander
; http://www.ghisler.com/download.htm
; Created by martinr with autohelp.cmd
[Version]
Signature= " NT$"
[PEBuilder]
Name="550 Total Commander "
Enable=0
Help="Files\"
[WinntDirectories]
a="Programs\totalcmd",2
[SourceDisksFiles]
Files\cabrk.dll=a,,3
Files\default.bar=a,,3
Files\no.bar=a,,3
Files\sfxhead.sfx=a,,3
Files\share_nt.exe=a,,3
Files\totalcmd.exe=a,,3
Files\totalcmd.gid=a,,6
Files\totalcmd.hlp=a,,3
Files\totalcmd.inc=a,,3
Files\unacev2.dll=a,,3
Files\unrar.dll=a,,3
Files\wcmicons.dll=a,,3
Files\wcmzip32.dll=a,,3
Files\wincmd.key=a,,6
wincmd.ini=a,,3
[Software.AddReg]
; Shortcut(s) for Total Commander
; Desktop Shortcut
0x2, "Sherpya\XPEinit\Desktop", "Total Commander", "%SystemDrive%\Programs\totalcmd\totalcmd.exe"
; Start menu - Programs shortcut
0x2, "Sherpya\XPEinit\Programs", "Total Commander", "%SystemDrive%\Programs\totalcmd\totalcmd.exe" |
Перед использованием готовых плагинов надо обязательно читать Readme файл, который содержит инструкции поясняющие функциональность плагина. Также необходимо учитывать, что многие готовые плагины изначально предназначены для BartPE, но не XPE. Точнее, функционально приложение будет абсолютно работоспособно и в XPE, но чтобы его запустить нужен ярлык в меню Пуск - Программы (на Рабочем Столе, в панели Быстрого запуска). Поскольку оригинальная среда BartPE использует nu2menu для удобного доступа к приложениям, многие плагины содержат информацию, необходимую для отображения ярлыка в Programs nu2menu. Для отображения ярлыка в nu2menu используется специально сконфигурированный XML файл, а в конец INF файла плагина добавляются такая секция:
Код:
|
[Append]
nu2menu.xml,pluginname.xml |
Для XPE такая секция не нужна (если только XPE не используется совместно с nu2menu), и ее нужно откомментировать. В XPE ярлыки отображаются примерно так:
Код:
|
[Software.AddReg]
; Add to Programs\File Management
0x2,"Sherpya\XPEinit\Programs","File Management\Total Commander","%SystemDrive%\Programs\TotalCmd\totalcmd.exe"
; Add to QuickLaunch
0x2,"Sherpya\XPEinit\QuickLaunch","Total Commander","%SystemDrive%\Programs\TotalCmd\totalcmd.exe"
;Add to Desktop
00x2,"Sherpya\XPEinit\Desktop","Total Commander","%SystemDrive%\Programs\TotalCmd\totalcmd.exe" |
В приведенном примере ярлыки располагаются в меню Пуск - Программы - FileManagement, в панели Быстрого Запуска и на Рабочем столе. Рассмотрим первую строчку подробнее:
0x2,"Sherpya\XPEinit\Programs" - добавление ярлыка в меню Пуск - Программы.
"File Management\Total Commander" - путь относительно меню Программы и название ярлыка. Иными словами, чтобы открыть TotalCommander надо будет пойти в меню Пуск - Программы - File Management. Если удалить File Management\, то иконка будет отображаться в корне меню Программы.
"%SystemDrive%\Programs\TotalCmd\totalcmd.exe" - путь к файлу, содержащему иконку. Используется переменная %SystemDrive%, которая будет преобразована в букву диска LiveCD (обычно X).
Если секция [Software.AddReg] с примерно таким содержанием есть в INF файле плагина, который вы загрузили, значит ярлык к приложению будет создан. Если вы хотите переместить его в другую часть меню или указать иное расположение, то отредактируйте нужные строчки по желанию. Однако, совсем необязательно создавать ярлыки вручную. Можно воспользоваться очень удобной утилитой shortcutCreator от Reatogo.
Создание ярлыков при помощи shortcutCreator
Утилита shortcutCreator находится в папке plugins\shortcutCreator.
1. Запустите файл shortcutCreator.exe
2. Нажмите кнопку Import Plugin и выберите INF файл плагина приложения
3. В окне Path выберите путь к этому приложению
4. В окне File to be started выберите файл для запуска этого
5. В окне Use this for icon выберите файл с иконкой приложения (как правило это файл приложения)
6. Кнопками (Desktop, Quick Launch Bar, и др.) выберите где вы хотите разместить ярлык
7. Если приложение должно запускаться при старте XPE, установите Autostart
8. Нажмите кнопку Create Shortcuts и информация будет добавлена в окнo
9. Нажмите кнопку Save Plugin и информация будет добавлена в INF файл плагина
10. Сохраните INF файл плагина под этим же именем
На самом деле, Reatogo проделал просто титаническую работу, популяризуруя Live CD. Как видите, с его конструктором и утилитами очень легко работать.
Самостоятельное создание плагинов
Авто-плагины и готовые плагины - это просто замечательно, и с большой вероятностью вы найдете уже готовый плагин для своего любимого приложения. Ну а что делать если плагина нет, а иметь его хочется? Для приложений не требующих установки вполне можно создать плагин самостоятельно.
Для начала в папке plugins создается папка totalcmd - в ней будет размещаться плагин для TotalCommander. В папке totalcmd создаем папку files и копируем в нее все файлы (включая подпапки) из директории, в которой установлен TotalCommander. Потом открываем текстовый редактор, смотрим как сделаны другие плагины и пишем свой :)
Код:
|
; PE Builder v3 plug-in INF file
; Created by Vadikan
[Version]
Signature= " NT$"
[PEBuilder]
Name="Total Commander v6"
Enable=1
[WinntDirectories]
a="Programs\totalcmd",2
[SourceDisksFolders]
files=a,,1
[Software.AddReg]
0x2,"Sherpya\XPEinit\Programs","File Management\Total Commander","%SystemDrive%\Programs\TotalCmd\totalcmd.exe"
; Add to QuickLaunch
;0x2,"Sherpya\XPEinit\QuickLaunch","Total Commander","%SystemDrive%\Programs\TotalCmd\totalcmd.exe"
;Add to Desktop
0x2,"Sherpya\XPEinit\Desktop","Total Commander","%SystemDrive%\Programs\TotalCmd\totalcmd.exe" |
Можете сравнить его с плагином от Reatogo, различий на самом деле очень мало. Разберем его по секциям.
Код:
|
[Version]
Signature= "$Windows NT$" |
Это стандартное обозначение версии.
Код:
|
[PEBuilder]
Name="Total Commander v6"
Enable=1 |
Эта секция отвечает за отображение плагина в pebuilder. Name - имя можно дать любое. Enable = 0 (по умолчанию выключен) или 1 (по умолчанию включен).
Код:
|
[WinntDirectories]
a="Programs\totalcmd",2 |
Определяет расположение директории totalcmd на диске Live CD. Она будет расположена в X:\Programs\
Код:
|
[SourceDisksFolders]
files=a,,1 |
Исходные файлы, которые будут включены в директорию totalcmd нашего диска. В отличии от Reatogo, указывающего все файлы посредством секции [SourceDisksFiles], здесь используется секция [SourceDisksFolders] и указывается путь относительно INF файла. Поскольку папка files, содержащая все файлы TotalCommander, находится в одной папке с INF файлом, то как таковой путь-то и указывать не надо. Все файлы находящиеся в files будут помещены в директорию totalcmd нашего диска.
Примечание: TotalCommander сконфигурирован таким образом, что файлы настроек wincmd.ini и wcx_ftp.ini находятся в директории программы. Расположение этих файлов пользователь выбирает при установке и по умолчанию они кладутся в директорию Windows. Это можно поправить при помощи утилиты inireloc. В противном случае, вам нужно будет запускать TotalCommander, указывая путь к этим файлам в параметрах командной строки. Для XPE это делается так:
Код:
|
[Software.AddReg]
0x2,"Sherpya\XPEinit\Programs","File Management\Total Commander","%SystemDrive%\Programs\TotalCmd\totalcmd.exe|/i=%SystemDrive%\Programs\TotalCmd\wincmd.ini f=%SystemDrive%\Programs\TotalCmd\wcx_ftp.ini|%SystemDrive%\Programs\totalcmd\totalcmd.exe"
; Add to QuickLaunch
0x2,"Sherpya\XPEinit\QuickLaunch","Total Commander","%SystemDrive%\Programs\TotalCmd\totalcmd.exe|/i=%SystemDrive%\Programs\TotalCmd\wincmd.ini f=%SystemDrive%\Programs\TotalCmd\wcx_ftp.ini|%SystemDrive%\Programs\totalcmd\totalcmd.exe"
;Add to Desktop
0x2,"Sherpya\XPEinit\Desktop","Total Commander","%SystemDrive%\Programs\TotalCmd\totalcmd.exe|/i=%SystemDrive%\Programs\TotalCmd\wincmd.ini f=%SystemDrive%\Programs\TotalCmd\wcx_ftp.ini|%SystemDrive%\Programs\totalcmd\totalcmd.exe" |
Вот и все. По такому образу и подобию можно создавать собственные плагины для приложений, которым не требуются наличие записей реестра. В противном случае надо будет думать как эти записи отслеживать и создавать.
Хочу предупредить, что некоторым приложениям требуется писать что-то на диск. Если запускать их с CD, как TotalCommander, то могут быть проблемы с функционированием: при попытке записать файл в свою директорию приложение обнаруживает невозможность записи. Обычно в таких случаях приложения копируют на RAM диск и запускают уже оттуда. Делается это при помощи либо пакетного файла либо SFX архива. RAM диску в XPE по умолчанию соответствует переменная %temp%, так что написать пакетный файл или сконфигурировать SFX нетрудно. Ниже приводится пример пакетного файла, предназначенного для запуска AdAware SE. Файл входит в плагин AdAware, распространящийся вместе с BartPE.
Код:
|
@echo off
rem -------------------------------------------------------------------------
rem adawarese.cmd - Script to start AdawareSE from BartPE
rem Created by Bart Lagerweij.
rem -------------------------------------------------------------------------
echo ADAWARE.CMD: Starting...
setlocal
if "%temp%" == "" goto _err
if exist "%temp%\adawarese\ad-aware.exe" goto _run
mkdir "%temp%\adawarese"
echo ADAWARE.CMD: Copying "%~dp0ad-aware.exe" to "%temp%\adawarese\"
copy "%~dp0ad-aware.exe" "%temp%\adawarese\ad-aware.exe"
echo ADAWARE.CMD: Copying "%~dp0defs.ref" to "%temp%\adawarese\"
copy "%~dp0defs.ref" "%temp%\adawarese\defs.ref"
:_run
start %temp%\adawarese\ad-aware.exe
goto _end
:_err
echo.
echo ADAWARE.CMD: No temp variable set...
echo ADAWARE.CMD: Try adding a ramdrive...
echo.
pause.
:_end
endlocal |
Пакетный файл проверяет наличие RAM диска (%temp% ), и в случае отсутствия предлагает создать его самостоятельно. Если же RAM диск существует, то пакетный файл проверяет не было ли приложение скопировано туда ранее. Если было, то запускает приложение; в противном случае копирует все нужные файлы и затем уже запускает приложение.