@echo off
setlocal
title CompArt Assistencia Remota

net session >nul 2>&1
if %errorlevel% neq 0 (
    powershell -Command "Start-Process cmd -Verb RunAs -ArgumentList '/c cd /d \"%~dp0\" && \"%~f0\"'"
    exit /b
)

set "SERVER=116.203.52.248"
set "KEY=VoNciHfK04+8tqVDJH8gLs5CbsXpECQ4jBTuFPEt1XU="

echo ============================================
echo   CompArt Assistencia Remota
echo ============================================
echo.

set "CFG=%APPDATA%\RustDesk\config"
if not exist "%CFG%" mkdir "%CFG%"

set "TOML=%CFG%\RustDesk2.toml"

:: Write config FIRST (before install)
(
echo rendezvous_server = '%SERVER%:21116'
echo nat_type = 1
echo serial = 0
echo unlock_pin = ''
echo trusted_devices = ''
echo.
echo [options]
echo custom-rendezvous-server = '%SERVER%:21116'
echo relay-server = '%SERVER%:21117'
echo key = '%KEY%'
) > "%TOML%"
(
echo key_confirmed = true
) > "%CFG%\RustDesk.toml"

:: Write registry FIRST
reg add "HKCU\Software\RustDesk\config" /v "custom-rendezvous-server" /t REG_SZ /d "%SERVER%:21116" /f >nul 2>&1
reg add "HKCU\Software\RustDesk\config" /v "relay-server" /t REG_SZ /d "%SERVER%:21117" /f >nul 2>&1
reg add "HKCU\Software\RustDesk\config" /v "key" /t REG_SZ /d "%KEY%" /f >nul 2>&1

echo [1/4] A desinstalar RustDesk (se existir)...
taskkill /f /im rustdesk.exe >nul 2>&1
sc stop RustDesk >nul 2>&1
if exist "%ProgramFiles%\RustDesk\rustdesk.exe" "%ProgramFiles%\RustDesk\rustdesk.exe" --uninstall >nul 2>&1
if exist "%ProgramFiles(x86)%\RustDesk\rustdesk.exe" "%ProgramFiles(x86)%\RustDesk\rustdesk.exe" --uninstall >nul 2>&1
sc delete RustDesk >nul 2>&1
timeout /t 3 /nobreak >nul

:: Limpar tudo
reg delete "HKCU\Software\RustDesk" /f >nul 2>&1
reg delete "HKLM\Software\RustDesk" /f >nul 2>&1
if exist "%APPDATA%\RustDesk" rd /s /q "%APPDATA%\RustDesk" >nul 2>&1
if exist "%LOCALAPPDATA%\RustDesk" rd /s /q "%LOCALAPPDATA%\RustDesk" >nul 2>&1
mkdir "%CFG%"

:: Escrever config de novo
(
echo rendezvous_server = '%SERVER%:21116'
echo nat_type = 1
echo serial = 0
echo unlock_pin = ''
echo trusted_devices = ''
echo.
echo [options]
echo custom-rendezvous-server = '%SERVER%:21116'
echo relay-server = '%SERVER%:21117'
echo key = '%KEY%'
) > "%TOML%"
(
echo key_confirmed = true
) > "%CFG%\RustDesk.toml"

:: Registry de novo
reg add "HKCU\Software\RustDesk\config" /v "custom-rendezvous-server" /t REG_SZ /d "%SERVER%:21116" /f >nul 2>&1
reg add "HKCU\Software\RustDesk\config" /v "relay-server" /t REG_SZ /d "%SERVER%:21117" /f >nul 2>&1
reg add "HKCU\Software\RustDesk\config" /v "key" /t REG_SZ /d "%KEY%" /f >nul 2>&1

echo [2/4] A descarregar RustDesk...
set "DL=%TEMP%\rustdesk_installer.exe"
curl -L -o "%DL%" "https://github.com/rustdesk/rustdesk/releases/download/1.4.6/rustdesk-1.4.6-x86_64.exe" >nul 2>&1

echo [3/4] A instalar RustDesk...
start /wait "" "%DL%" --silent-install
timeout /t 8 /nobreak >nul

set "RD=%ProgramFiles%\RustDesk\rustdesk.exe"
if not exist "%RD%" set "RD=%ProgramFiles(x86)%\RustDesk\rustdesk.exe"
if not exist "%RD%" (
    echo ERRO: instalacao falhou!
    pause
    exit /b 1
)

echo [4/4] A configurar RustDesk...
taskkill /f /im rustdesk.exe >nul 2>&1
sc stop RustDesk >nul 2>&1
timeout /t 3 /nobreak >nul

:: Re-escrever config (o instalador pode ter apagado)
mkdir "%CFG%" 2>nul
(
echo rendezvous_server = '%SERVER%:21116'
echo nat_type = 1
echo serial = 0
echo unlock_pin = ''
echo trusted_devices = ''
echo.
echo [options]
echo custom-rendezvous-server = '%SERVER%:21116'
echo relay-server = '%SERVER%:21117'
echo key = '%KEY%'
) > "%TOML%"
(
echo key_confirmed = true
) > "%CFG%\RustDesk.toml"

reg add "HKCU\Software\RustDesk\config" /v "custom-rendezvous-server" /t REG_SZ /d "%SERVER%:21116" /f >nul 2>&1
reg add "HKCU\Software\RustDesk\config" /v "relay-server" /t REG_SZ /d "%SERVER%:21117" /f >nul 2>&1
reg add "HKCU\Software\RustDesk\config" /v "key" /t REG_SZ /d "%KEY%" /f >nul 2>&1

:: Importar
"%RD%" --import-config "%TOML%" 2>nul

:: Iniciar
sc config RustDesk start=auto >nul 2>&1
net start RustDesk >nul 2>&1
timeout /t 3 /nobreak >nul

:: Iniciar RustDesk (2a vez para garantir que leu o config)
taskkill /f /im rustdesk.exe >nul 2>&1
timeout /t 2 /nobreak >nul
start "" "%RD%"

echo.
echo ============================================
echo   Concluido!
echo   Server: %SERVER%
echo   Key: %KEY%
echo   Verifique Settings ^> Network no RustDesk
echo ============================================
pause
