# Установщик Inv_web Client v2 для Windows Установщик поддерживает три режима: 1. **Автоматический с RustDesk** — устанавливает клиент и RustDesk без задания собственного сервера. Фиксированный пароль можно задать или оставить пустым. 2. **Ручной с сервером RustDesk** — устанавливает клиент и RustDesk, запрашивает `Сервер ID`, `Ретранслятор`, публичный `Key` и необязательный фиксированный пароль. 3. **Без RustDesk** — устанавливает только клиент Inv_web и не изменяет уже установленный RustDesk. Во всех режимах установщик также запрашивает: - адрес сервера; - токен клиента. После установки параметры передаются клиенту и сохраняются в: ```text %APPDATA%\InvWebClientAgentV2\config.json ``` ## Требования для сборки - Windows 10/11 x64; - классический CPython 3.13 x64 с Tcl/Tk; - [Inno Setup 6](https://jrsoftware.org/isdl.php). - официальный установщик RustDesk для Windows x64. Перед сборкой переименуйте установщик RustDesk в `rustdesk.exe` и положите его в: ```text installer\prerequisites\rustdesk.exe ``` Минимальный runtime из нового Python Install Manager не подходит для сборки, поскольку не содержит Tcl/Tk. BAT-файл проверяет не только версию Python, но и наличие рабочих файлов Tcl/Tk. Если подходящий CPython 3.13 не найден, сценарий: 1. пытается установить `Python.Python.3.13` через `winget`; 2. повторно проверяет Tcl/Tk; 3. если подходящий Python всё ещё не найден, скачивает официальный полный установщик [CPython 3.13.15 x64](https://www.python.org/downloads/release/python-31315/), проверяет его SHA-256 и тихо устанавливает для текущего пользователя с компонентами Tcl/Tk и `pip`. Для резервной загрузки требуется доступ к `python.org`. Добавлять Python в `PATH` и удалять уже установленные версии не требуется. ## Сборка Запустите: ```bat build_client_agent_v2_installer_windows.bat ``` Готовый установщик: ```text dist\Inv_web_Client_Setup.exe ``` При сборке клиент формируется в формате `onedir` и целиком включается в Inno Setup. Это исключает распаковку Tcl/Tk во временный каталог `_MEI...` при запуске. Сценарий сборки отдельно проверяет наличие `_tcl_data\init.tcl` и `_tk_data\tk.tcl`, а затем запускает клиент с `--help` как smoke-тест. Поэтому установщик не будет создан с неполным или не запускающимся Tkinter. Для тихой установки и настройки службы RustDesk мастер запрашивает права администратора. Клиент устанавливается в каталог: ```text %LOCALAPPDATA%\Programs\Inv_web Client ``` Сценарий настройки проверяет, что адрес ID-сервера, ретранслятор и ключ были фактически сохранены RustDesk, после чего перезапускает его службу. Диагностический журнал установки RustDesk сохраняется здесь: ```text %ProgramData%\Inv_web Client\rustdesk-install.log ```