Плагин добавляющий буфер для реализации записи на носители только для чтения.
Объединены конфигурации для WIM и не-WIM загрузок.
Мои благодарности _SIL_.
minlogon из WinXP Embedded для универсальности загрузки с оптического носителя, с USB MSD и по сети...
Paraglider tools – RunScanner(нужен для большинства плагов из раздела [b]Работа с гостевой системой[/b]), ShellExecute, ERDRoot
Поддержка USB mass storage device для BartPE. Флешки будут монтироваться на лету, при монтировании USB HDD требуется запуск команды [b]Смонтировать разделы[/b] из меню [b]Пуск[/b]
Поддержка 16-ти разрядных DOS-задач под BARTPE. Содержит TameDOS v.4.4
Содержит два независимых компонента: - поддержка WIM-плагинов и реализация прозрачного монтирования и запуска программы из такого плагина. При этом сам WIM-архив выступает как исполняемый файл. (Для применения WIM-плагинов в WIM-загрузках требуется активный FBWF) - автоматическое создание WIM-сборки(работает или в конструкторе (Y)PE или с моей базовой постобработкой - неплагинной).
Основной скрипт плагина wim_loader.cmd создан для удобства использования WIM-упакованных приложений.
Основная идея простая - монтирование WIM по заведомо уникальному пути и запуск программы в случае наличия описания или указания исполняемого файла через параметры командной строки. Если же описания нет или параметр не указан - открыть смонтированную папку в выбранном файловом менеджере(по-умолчанию EXPLORER).
Несмотря на кажущуюся сложность скрипта он достаточно прост в применении.
Вот полное описание всех параметров и форматов ввода:
=====================================================
Способы использования скрипта wim_loader.cmd
(даны в порядке убывания приоритетов обработки):
=====================================================
1. Запуск с указанием всех параметров из командной строки
(3 обязательных и 2 необязательных):
1-й - обязательный - WIM-файл для монтирования - полный путь
2-й - обязательный и равен 2 - это признак указания всех параметров из командной строки при его указании игнорируются параметры
из файла запуска
3-й - обязательный - файл для запуска - имя исполняемого файла
с относительным путем внутри WIM - без имени секции)
4-й - необязательный - секция WIM-файла для монтирования - если
не указано то будет использована секция "по умолчанию"
5-й - необязательный - путь для монтирования - полный путь -
если не указано будет использован путь "по умолчанию".
Условие срабатывания:
Скрипт считает что использован этот способ если второй параметр командной строки равен 2
=====================================================
2. Запуск с подхватыванием параметров запуска из внешнего файла запуска <имя wim-файла без расширения>_wim_par.ini
Принимает 1 обязательный параметр из командной строки:
1-й - обязательный - WIM-файл для монтирования - полный путь
Файл описания запуска должен содержать следующие параметры:
FILE_LOAD = <файл для запуска> - имя исполняемого файла для запуска после монтирования с относительным путем внутри WIM -
без имени секции - обязательный!
WIM_SECTION = <имя секции WIM-файла для запуска> - если не указано будет использована секция "по умолчанию"
MOUNT_PATHS = <путь для монтирования> - если не указано
будет использован путь "по умолчанию"
Условие срабатывания:
Скрипт считает что использован этот способ если второй параметр командной строки отустствует и существует файл
<имя wim-файла без расширения>_wim_par.ini
=====================================================
3. Запуск с подхватыванием параметров запуска из файла _wim_par.ini
расположенного в корне секции для монтирования
Принимает 1 обязательный
1-й - обязательный - WIM-файл для монтирования - полный путь
Файл описания запуска должен содержать следующие параметры:
FILE_LOAD = <файл для запуска> - имя исполняемого файла для запуска после монтирования с относительным путем внутри WIM -
без имени секции - обязательный!
При этом для монтирования всегда используется секция "по умолчанию" то есть 1.
Для монтирования будет использован путь "по умолчанию"
Условие срабатывания:
Скрипт считает что использован этот способ если второй параметр командной строки отустствует и не существует файл
<имя wim-файла без расширения>_wim_par.ini
=====================================================
Теперь примеры:
=====================================================
Предположим мы имеем WIM-файл nod40.wim с секцией 1(то есть создавался по умолчанию), расположенный в %ProgramFiles%\NOD32_40 (то есть при обычной загрузке это абсолютный путь X:\PROGRAMS\NOD32_40). Файлы расположены в корне во вложенной папке NOD32. Так же предполагаем что файл для запуска - скрипт egui.cmd расположенный во вложенной папке NOD32 внутри WIM-файла.
=====================================================
1. Запуск с указанием всех параметров из командной строки
минимальный набор параметров запуска:
wim_loader.cmd "%ProgramFiles%\NOD32_40\nod40.wim" 2 NOD32\egui.cmd
максимальный набор параметров запуска:
wim_loader.cmd "%ProgramFiles%\NOD32_40\nod40.wim" 2 NOD32\egui.cmd 1 "%TEMP%\MY_NOD"
=====================================================
2. Запуск с подхватыванием параметров запуска из внешнего файла запуска
Создамим внешний ini-файл nod40_wim_par.ini в той же папке
где находится nod40.wim
Минимальное содержимое файла nod40_wim_par.ini:
FILE_LOAD=NOD32\egui.cmd
Максимальное содержимое файла nod40_wim_par.ini:
FILE_LOAD=NOD32\egui.cmd
WIM_SECTION=1
MOUNT_PATHS=%TEMP%\MY_NOD32
вызов производится так:
wim_loader.cmd "%ProgramFiles%\NOD32_40\nod40.wim"
=====================================================
3. Запуск с подхватыванием параметров запуска из файла _wim_par.ini
расположенного в корне секции для монтирования
Содержимое файла _wim_par.ini:
FILE_LOAD=egui.cmd
вызов производится так:
wim_loader.cmd "%ProgramFiles%\NOD32_40\nod40.wim"
=====================================================
Общие замечания:
=====================================================
При указании параметров командной строки содержащих пробелы
обязательно обрамляйте их двойными кавычками!
Также обязательно наличие в %SystemRoot%\system32 утилиты imagex.exe"
Путь для монтирования "по умолчанию":
%TEMP%\WIM_PRG\DISK_<Буква диска содержащего WIM-файл>\<путь WIM-файла>\<имя WIM-файла>
Секция для монтирования "по умолчанию": 1
Оба варианта INI-файлов cчитывают именованные параметры без учета секций
Символ ";" является символом коментария.
Если одноименный параметр будет встречен несколько раз то значение
будет считано из последней строки с таким параметром.
Пробелы до знака "=" и сразу после него игнорируются.
Так как обработка расширения WIM у меня реализована таким путем:
0x2, "Classes\wimfile\Shell\open\command",,"%SystemRoot%\SYSTEM32\wim_loader.cmd ""%1"""
то для второго и третьего типов запуска команда
wim_loader.cmd "<имя и путь wim-файла с расширением>"
генерится автоматически - вам остается только обеспечить наличие
нужного WIM-файла.
=====================================================
Приоритеты срабатывания методов монтирования:
=====================================================
- Если указано более одного параметра запуска скрипта - то наличие INI-файлов
рядом или внутри WIM-файла игнорируется - наивысший приоритет.
- Если указан только 1 параметр и рядом с WIM-файлом находится INI-файл вида
<имя wim-файла без расширения>_wim_par.ini
наличие INI-файлов внутри WIM-файла игнорируется - средний приоритет
- Если указан только 1 параметр и рядом с WIM-файлом нет INF-файл вида
<имя wim-файла без расширения>_wim_par.ini то обрабатывается INI-файл внутри WIM-файла - низший приоритет.
- Если указан только 1 параметр и рядом с WIM-файлом нет INF-файл вида
<имя wim-файла без расширения>_wim_par.ini и отсутствует INI-файл
внутри WIM-файла - WIM смонтируется и будет открыта папка монтирования в текущем шелле.
Поддержка многопроцессорных/многоядерных систем.
Полная поддержка русского языка в графических и консольных режимах. Адаптирован для сборки при использовании дистрибутива Win2003 SP1, WinXP SP2, WinXP SP3.
Встроен отдельный модуль добавления украинской раскладки клавиатуры.
Добавлены новые временные зоны, по умолчанию установлен часовой пояс "(GMT+04:00) Волгоград, Москва, Санкт-Петербург"
Плагин выполняющий большинство процессов постобработки в любых конструкторах на базе BartPE. В моем конструкторе не требуется.
Выполняется на стадии обработки сразу после [SetValue] в конкретном плагине.(Классический пример использования метода [Execute]).
Выполняет пораздельно:
1. Удаление файлов по списку "\FILES\!DEL_FILE.TXT", удаление папок по списку "\FILES\!DEL_DIR.TXT"
2. Уудаление сетевых драйверов по списку "\FILES\!DEL_NET.TXT"(сработает только при отсутствии I386\SYSTEM32\start_netservices.cmd - это мой маркер наличия сети в сборке его можно заменить на свой в "FILES\2_del_net_files.cmd")
3. Упаковка UPX по списку "\FILES\!upx.txt"
4. Оптимизация TXTSETUP.SIF по спискам "\FILES\for_txtsetup1.txt"(убирание "лишних" строк) и "\FILES\for_txtsetup2.txt " (убирание "лишних" разделов) и убирание пустых строк.
5. Конвертация INF-файлов из UNICOCE в ANSI(Win1251)
6. Построение INFCACHE.1 для ускорения процесса PnP
Мои благодарности _SIL_.
Отредактированы списки файлов на удаление - важно для возможности добавления украинской раскладки клавиатуры.
Реализация диска в оперативной памяти через ImDisk. Без ограничения размера, с авторесайзером(настройка в ramdisk.cmd).
Существенно уменьшено время загрузки благодаря _SIL_.
Реализация диска в оперативной памяти через RamDisk Qsoft. Без ограничения размера, с авторесайзером(настройка в ramdisk.cmd).
Утилита дает возможность на лету добавить файл подкачки.
По умолчанию установлена цветовая схема XP_BLUE.
Убраны все схемы кроме стандартной и "дождивый день". См. скриншот.
Схемы создаются в реестре заранее, а не в рантайме, что слегка убыстряет процесс загрузки и экономит место, отводимое под реестр.