# tools/ — client esterni bundlati (Windows)

Questa cartella viene copiata accanto all'eseguibile (`CopyToOutputDirectory`) e finisce nel
pacchetto di setup. DeviceFinder2 la usa per i client esterni lanciati dai pulsanti SSH/SFTP/VNC.

I **binari non sono committati** nel repo (vedi `.gitignore`): vanno aggiunti qui prima della
build/release di distribuzione.

## Due modalità (entrambe supportate, possono coesistere)

### 1) Binari portable — usati direttamente, di default
Metti l'eseguibile (anche in una sottocartella) e DeviceFinder2 lo userà automaticamente,
con priorità sul PATH di sistema. La risoluzione avviene **per nome file** configurato in Setup:

- SSH  → `putty.exe`     (default config Windows)
- SFTP → `WinSCP.exe`
- VNC  → `vncviewer.exe`

Esempio:
```
tools/putty.exe
tools/winscp/WinSCP.exe
tools/vnc/vncviewer.exe
```

### 2) Installer — proposti all'utente al primo uso
Se il binario **non** è presente/installato, premendo il pulsante relativo l'app mostra un
popup "… is not installed" con il pulsante **Install now** che lancia l'installer bundlato, se
presente in:

```
tools/installers/ssh/   (es. putty-*-installer.msi)
tools/installers/sftp/  (es. WinSCP-*-Setup.exe)
tools/installers/vnc/   oppure  tools/RealVNC-Viewer/   (es. RealVNC-Connect-Viewer-*.msi)
```

Viene preso il primo `*.exe`/`*.msi` della cartella. Per VNC il default punta al viewer
RealVNC installato (`C:\Program Files\RealVNC\VNC Viewer\vncviewer.exe`): se non presente,
il popup propone di lanciare l'installer bundlato in `tools/RealVNC-Viewer/`. Distribuire gli **installer** ufficiali è
permesso anche quando il binario non è liberamente redistribuibile (es. RealVNC). In assenza di
installer, il popup offre comunque il link alla pagina di download ufficiale
(PuTTY → putty.org, WinSCP → winscp.net, VNC → realvnc.com).

## Licenze
- PuTTY: MIT — redistribuibile.
- WinSCP: GPLv3 — redistribuibile (rispettare gli obblighi GPL).
- RealVNC: proprietario — **non** redistribuire il binario; distribuire l'installer ufficiale
  solo se i termini lo consentono, altrimenti lasciare solo l'invito al download.
