73 lines
3.6 KiB
Markdown
73 lines
3.6 KiB
Markdown
# Установщик флешки PARAVIS
|
||
|
||
Нативная Win32-версия `USBInstaller\usb-install.au3` на C++ с той же
|
||
разметкой, поведением и потоком данных.
|
||
|
||
## Сборка
|
||
|
||
Требования:
|
||
|
||
- Visual Studio 2022 с рабочей нагрузкой Desktop C++;
|
||
- CMake 3.20 или новее.
|
||
|
||
Из этого каталога:
|
||
|
||
```bat
|
||
build.cmd
|
||
```
|
||
|
||
Результат:
|
||
|
||
```
|
||
build\Release\ParavisInstaller.exe
|
||
```
|
||
|
||
Цель 32-битная (`Win32`), как и оригинальная сборка на AutoIt; манифест
|
||
запрашивает права администратора.
|
||
|
||
## Что реализовано
|
||
|
||
- Окно 376×183 с собственной отрисовкой: шапка, выпадающий список дисков,
|
||
строка состояния, индикатор прогресса, кнопка установки/отмены и
|
||
состояния наведения/нажатия.
|
||
- Перечисление USB-дисков по типу шины, форматирование номинального размера
|
||
и защита системного диска Windows.
|
||
- Разметка через diskpart: FAT32 `PARAVIS` 16 ГБ, FAT `VTOYEFI` 32 МБ,
|
||
exFAT `DATA` (оставшийся объём).
|
||
- Галочка «Не копировать Windows ESD» (по умолчанию снята): если включить,
|
||
папка `WindowsESD` из образа 3 после распаковки удаляется с раздела DATA.
|
||
- Отключённый диск переводится в онлайн перед разметкой.
|
||
- Проверка разметки по таблице разделов и меткам томов.
|
||
- Распаковка 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`](LICENSE).
|