2026-11-08 23:25:03 +03:00
2026-11-08 23:25:03 +03:00
2026-11-07 20:40:47 +03:00
2026-11-07 20:40:47 +03:00
2026-11-08 23:25:03 +03:00

Установщик флешки PARAVIS

Нативная Win32-версия USBInstaller\usb-install.au3 на C++ с той же разметкой, поведением и потоком данных.

Сборка

Требования:

  • Visual Studio 2022 с рабочей нагрузкой Desktop C++;
  • CMake 3.20 или новее.

Из этого каталога:

build.cmd

Результат:

build\Release\ParavisInstaller.exe

Цель 32-битная (Win32), как и оригинальная сборка на AutoIt; манифест запрашивает права администратора.

Что реализовано

  • Окно 376×183 с собственной отрисовкой: шапка, выпадающий список дисков, строка состояния, индикатор прогресса, кнопка установки/отмены и состояния наведения/нажатия.
  • Перечисление USB-дисков по типу шины, форматирование номинального размера и защита системного диска Windows.
  • Разметка через diskpart: FAT32 PARAVIS 16 ГБ, FAT VTOYEFI 32 МБ, exFAT DATA (оставшийся объём).
  • Если рядом с установщиком есть WindowsESD.pf, после Data.pf он распаковывается на раздел DATA (статус «Распаковка Windows ESD»).
  • Галочка «Не копировать Windows ESD» (по умолчанию снята) пропускает распаковку WindowsESD.pf. Если файла нет, галочка неактивна и распаковка пропускается; если файл не является WIM — ошибка «WindowsESD.pf повреждён».
  • Отключённый диск переводится в онлайн перед разметкой.
  • Проверка разметки по таблице разделов и меткам томов.
  • Распаковка DISM: образ 1 → PARAVIS, 2 → VTOYEFI, 3 → DATA, с разбором прогресса и остановкой дерева процессов DISM при отмене.
  • Нажатие «Отмена» во время установки сначала запрашивает подтверждение.
  • После успешной установки буква диска VTOYEFI удаляется.
  • Предупреждение об успехе, запуск Change_BootLoader.exe с раздела PARAVIS и немедленный выход.
  • Если рядом с установщиком есть Change_BootLoader.exe, он копируется на раздел PARAVIS после распаковки и используется вместо копии из Data.pf.
  • Повторный запуск установщика запрещён: второй экземпляр активирует уже открытое окно и сразу завершается.
  • Служебные режимы: /selftest, /verify=N, /testdisk=N, /wim=путь.

Примечания

  • Data.pf ищется рядом с exe, как и в AutoIt-версии. /wim= остаётся служебным/тестовым переопределением.
  • Командные строки DISM собираются без внешней пары кавычек cmd /c "...", поэтому пути с пробелами работают корректно.
  • Отладочный лог по умолчанию выключен. Переменная PARAVIS_DEBUG_LOG=1 включает запись в %TEMP%\paravis_cpp_debug.log.
  • Диалоги — нативный MessageBoxW; тексты, кнопки и поведение совпадают с AutoIt-версией.

Структура репозитория

src/            исходники и ресурсы C++
legacy-au3/     исходная версия на AutoIt
build.cmd       сборка релиза

Лицензия

MIT, см. LICENSE.

S
Description
Paravis USB flash installer - C++ source
Readme MIT
205 KiB
0 Stars 1 Watchers 0 Forks
2026-11-07 20:42:03 +03:00
Languages
C++ 63.3%
AutoIt 35.7%
CMake 0.8%
Batchfile 0.2%