@echo off
setlocal
title Criar atalho do SmartClient HTML - Ellos Informatica

set "AGENTE=%LOCALAPPDATA%\Programs\web-agent\web-agent.exe"

echo.
echo  ==========================================================
echo   Criar atalho para abrir o sistema com o TOTVS Web Agent
echo   Ellos Informatica - https://blog.ellosinformatica.com.br
echo  ==========================================================
echo.

if not exist "%AGENTE%" (
  echo  [ERRO] O Web Agent nao foi encontrado em:
  echo         %AGENTE%
  echo.
  echo  Instale o Web Agent antes e rode este arquivo de novo.
  echo.
  pause
  exit /b 1
)

echo  Web Agent encontrado:
echo    %AGENTE%
echo.
echo  Informe o endereco do seu ambiente, o mesmo que voce usa
echo  hoje no navegador. Exemplo:
echo    http://minhaempresa123456.taf.cloudtotvs.com.br:10604/webapp/
echo.

set "SISTEMAURL="
set /p "SISTEMAURL=Endereco: "

if not defined SISTEMAURL (
  echo.
  echo  [ERRO] Nenhum endereco informado.
  echo.
  pause
  exit /b 1
)

echo %SISTEMAURL% | findstr /i /r "^http[s]*://" >nul
if errorlevel 1 (
  echo.
  echo  [ERRO] O endereco precisa comecar com http:// ou https://
  echo         Voce digitou: %SISTEMAURL%
  echo.
  pause
  exit /b 1
)

echo.
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
 "$ws = New-Object -ComObject WScript.Shell;" ^
 "$alvo = $env:AGENTE;" ^
 "$par = 'launch ' + [char]34 + $env:SISTEMAURL + [char]34;" ^
 "$lnk = Join-Path ([Environment]::GetFolderPath('Desktop')) 'Sistema TOTVS.lnk';" ^
 "$s = $ws.CreateShortcut($lnk);" ^
 "$s.TargetPath = $alvo;" ^
 "$s.Arguments = $par;" ^
 "$s.WorkingDirectory = (Split-Path $alvo);" ^
 "$s.Description = 'Abre o Web Agent e o sistema TOTVS ja conectados';" ^
 "$s.Save();" ^
 "$v = $ws.CreateShortcut($lnk);" ^
 "Write-Host '  Atalho criado na Area de Trabalho: Sistema TOTVS';" ^
 "Write-Host ('     destino  : ' + $v.TargetPath);" ^
 "Write-Host ('     parametro: ' + $v.Arguments);" ^
 "$startup = [Environment]::GetFolderPath('Startup');" ^
 "$antigos = @(foreach ($f in (Get-ChildItem $startup -Filter *.lnk -EA SilentlyContinue)) { if ($ws.CreateShortcut($f.FullName).TargetPath -like '*web-agent.exe') { $f } });" ^
 "if ($antigos.Count -gt 0) {" ^
 "  Write-Host '';" ^
 "  Write-Host '  [ATENCAO] Ha atalho do Web Agent na pasta Inicializar:';" ^
 "  foreach ($a in $antigos) { Write-Host ('     ' + $a.Name) };" ^
 "  Write-Host '  Isso sobe uma SEGUNDA copia do agente junto com a deste atalho,';" ^
 "  Write-Host '  e a segunda morre com Could not initialize!';" ^
 "  Write-Host '  Recomendado remover: Windows+R  e depois  shell:startup' }"

if errorlevel 1 (
  echo.
  echo  [ERRO] Nao foi possivel criar o atalho.
  echo.
  pause
  exit /b 1
)

echo.
echo  ==========================================================
echo   Pronto. Abra o sistema SEMPRE por este atalho.
echo   Abrir por favorito ou digitando o endereco nao funciona:
echo   por esse caminho o navegador nao recebe a porta do agente.
echo.
echo   Se ainda aparecer erro de conexao com o WebAgent, falta
echo   liberar o navegador - veja liberar-webagent-chrome.cmd
echo  ==========================================================
echo.
pause
