Privacy · Guide
Come nascondere un assistente AI dalla condivisione dello schermo su Windows (Win32 e DirectX)
The Odrivyn team · Aggiornato · 9 min di lettura

In breve
Windows nasconde le finestre dell'applicazione dall'acquisizione dello schermo tramite l'API SetWindowDisplayAffinity con il flag WDA_EXCLUDEFROMCAPTURE. Il Window Manager del desktop di Windows ignora la finestra durante i passaggi di acquisizione dello schermo ed esegue invece il rendering dello sfondo del desktop sottostante. Zoom, Microsoft Teams, Google Meet e i registratori dello schermo catturano solo il contenuto sotto la finestra dell'assistente.
Perché le applicazioni di note standard falliscono durante la condivisione dello schermo
La condivisione dello schermo rimane un requisito quotidiano per presentazioni remote, colloqui tecnici e dimostrazioni di software. I relatori condividono l'intero display del desktop per alternare editor di codice, browser Web e diapositive di presentazione senza interrompere il flusso della riunione.
Le applicazioni standard per prendere appunti (come Notion, Obsidian e editor di testo di sistema) disegnano le loro interfacce sulla superficie di composizione desktop condivisa. Quando apri una finestra di nota per controllare i punti di discussione o le richieste del colloquio, ogni partecipante alla riunione visualizza il contenuto.
La condivisione di una finestra di programma isolata introduce attriti pratici. Le notifiche di sistema, gli avvisi in background e le finestre di dialogo popup di altri software spesso si sovrappongono al confine dell'applicazione condivisa, causando l'esposizione involontaria di dati riservati.
La pipeline di composizione di Windows Desktop Window Manager
Windows coordina il rendering della visualizzazione grafica tramite Desktop Window Manager (dwm.exe). In Windows 10 versione 2004 (build 19041), Microsoft ha espanso la funzione Win32 SetWindowDisplayAffinity aggiungendo la costante WDA_EXCLUDEFROMCAPTURE.
La funzione accetta un handle di finestra nativo (HWND) e un parametro di affinità: WDA_NONE (0x00), WDA_MONITOR (0x01) o WDA_EXCLUDEFROMCAPTURE (0x11).
Quando il software registra WDA_EXCLUDEFROMCAPTURE, il motore di composizione considera trasparente la superficie della finestra specifica ogni volta che un processo esterno richiama le API di acquisizione dello schermo. Il sistema operativo copia lo sfondo del desktop sottostante nel buffer di acquisizione, dipingendo la finestra dell'assistente sul monitor hardware fisico.
Le piattaforme per conferenze (inclusi Zoom, Microsoft Teams, Google Meet e Slack) acquisiscono fotogrammi dello schermo tramite routine Windows Graphics Capture o BitBlt standard. Il sistema operativo applica il filtro di affinità di visualizzazione prima di restituire i frame buffer al software della riunione.
Composizione della swapchain DirectX e albero delle finestre del desktop
Windows Desktop Window Manager coordina gli aggiornamenti di visualizzazione tramite swapchain Direct3D. Quando un'applicazione dipinge la propria interfaccia, invia le superfici pixel a DWM, che combina le singole superfici delle finestre in un unico fotogramma di visualizzazione.
Gli strumenti legacy di acquisizione dello schermo si basavano sulla funzione GDI Win32 BitBlt, che copiava blocchi di pixel raster dal contesto del dispositivo dello schermo. I moderni software per conferenze utilizzano l'API Windows Graphics Capture o l'API Desktop Duplication, che leggono direttamente dalle superfici della memoria video Direct3D.
Poiché WDA_EXCLUDEFROMCAPTURE agisce all'interno dell'albero di composizione DWM principale, l'esclusione si applica sia allo scraping dello schermo GDI legacy che alle moderne pipeline video Direct3D. La pipeline di composizione del sistema operativo scambia la superficie della finestra esclusa con la superficie dello sfondo prima di inviare il frame buffer al consumer di acquisizione.
Perché il browser Web e i window wrapper di Electron perdono durante la presentazione
Molte utilità desktop impacchettano i motori Web all'interno di wrapper Electron o Chromium. Questi framework introducono livelli di astrazione tra l'applicazione e il sistema operativo sottostante.
Quando un'applicazione Electron tenta di attivare/disattivare la visibilità della finestra, la sua architettura multiprocesso spesso crea condizioni di competizione. La finestra del browser viene disegnata su una catena di scambio DirectX separata prima che la chiamata di affinità Win32 si colleghi all'handle della finestra di livello superiore. Nelle configurazioni multi-monitor, lo spostamento di una finestra su schermi con diversi fattori di scala DPI può reimpostare gli stili delle finestre, facendo lampeggiare note riservate sul feed video condiviso.
Odrivyn previene queste perdite visive compilando come binario desktop nativo di Rust. Il programma applica WDA_EXCLUDEFROMCAPTURE durante la creazione della finestra iniziale prima di visualizzare un singolo fotogramma, prevenendo l'esposizione accidentale su tutte le configurazioni del monitor.
Compatibilità dell'acquisizione dello schermo con le principali applicazioni per conferenze
Verificato su Windows 10 Enterprise e Windows 11 Pro su driver hardware di visualizzazione Intel, AMD e NVIDIA.
| Software per conferenze | Modalità di cattura selezionata | Stato della finestra dell'assistente | Cosa visualizzano i partecipanti alla riunione |
|---|---|---|---|
| Client desktop Zoom | Condividi schermo intero (Desktop 1) | Escluso dal buffer di acquisizione | Sfondo del desktop e finestre delle applicazioni posizionate dietro l'assistente |
| Microsoft Teams | Condivisione dell'intero schermo | Escluso dal buffer di acquisizione | Contenuti sottostanti senza contorni di finestre o artefatti visivi |
| Google Meet (Chrome/Edge) | Scheda schermo intero | Escluso dal buffer di acquisizione | Sfondo del desktop pulito con frame rate costante e zero sfarfallio |
| Riunioni lente | Trasmissione a monitor completo | Escluso dal buffer di acquisizione | Solo le applicazioni eseguite sotto l'interfaccia Odrivyn |
| OBS Studio/Camtasia | Visualizza la sorgente di acquisizione | Escluso dal buffer di acquisizione | Feed video registrato pulito contenente zero sovrapposizioni di assistenti |
| Strumento di cattura di Windows | Cattura rettangolare (Win+Shift+S) | Escluso dal buffer di acquisizione | Lo screenshot salvato mostra lo sfondo con zero pixel di sovrapposizione |
Comportamento di esclusione dell'acquisizione del sistema operativo verificato con l'accelerazione hardware abilitata.
Verifica passo passo: verifica che la tua finestra rimanga nascosta prima di una chiamata
Segui questo audit in quattro fasi sulla tua postazione di lavoro prima di iniziare un'importante presentazione al cliente o un colloquio remoto.
Passaggio 1: apri Odrivyn e posiziona la finestra sullo sfondo del desktop o su una pagina del browser Web aperta.
Passaggio 2: premere la combinazione di tasti di scelta rapida di Windows: tasto Windows + Maiusc + S. Questa scorciatoia da tastiera richiama la sovrapposizione dello Strumento di cattura di Windows.
Passaggio 3: trascina un rettangolo di selezione sull'area dello schermo in cui si trova la finestra di Odrivyn.
Passaggio 4: incolla lo screenshot catturato in un visualizzatore di immagini o in un documento. Se l'affinità di visualizzazione funziona come previsto, l'immagine mostra lo sfondo del desktop o il contenuto del browser, senza traccia della finestra dell'assistente.
Passaggio 5: avvia una riunione di prova individuale in Zoom o Microsoft Teams, condividi l'intero schermo del desktop e controlla il riquadro di anteprima della riunione per confermare l'isolamento visivo.
Prestazioni architetturali: spazio di memoria nativo di Rust Win32 vs Electron
Le applicazioni desktop pesanti basate sul bundle Electron o Chromium completano i runtime del browser Web, consumando da 500 a 900 megabyte di memoria di lavoro e creando conflitti nel contesto della GPU durante la condivisione del monitor 4K.
Odrivyn si compila come applicazione Rust nativa con collegamenti per la creazione di finestre Win32. Il file eseguibile pesa 5,7 megabyte e consuma 34 megabyte di memoria residente durante le riunioni attive.
La leggera architettura nativa previene la perdita di frame durante le presentazioni su schermo e applica WDA_EXCLUDEFROMCAPTURE all'inizializzazione della finestra, garantendo che l'applicazione non esegua mai il rendering di un frame visivo non protetto.
Domande frequenti
L'esclusione dell'acquisizione richiede privilegi di amministratore?
No. Qualsiasi processo Windows standard a livello utente può impostare l'affinità di visualizzazione sulle finestre create all'interno del proprio thread di esecuzione.
I partecipanti alla chiamata possono rilevare un bot dei partecipanti alla riunione?
Nessun bot partecipa alla riunione. Il software funziona come un programma desktop locale indipendente che legge l'audio dai driver della scheda audio locale.
WDA_EXCLUDEFROMCAPTURE funziona su versioni Windows precedenti?
È richiesto Windows 10 versione 2004 (build 19041) o successiva. Nelle build più vecchie, il sistema operativo esegue il rendering di una solida scatola nera anziché di un livello di acquisizione trasparente.
L'affinità display protegge dalle videocamere esterne?
No. L'affinità di visualizzazione indica al software di acquisizione del sistema operativo di saltare la finestra. Non può impedire a una fotocamera fisica puntata sul monitor hardware di catturare la luce emessa.
Posso disattivare l'esclusione dell'acquisizione se desidero mostrare le note?
Sì. Puoi attivare o disattivare la protezione dall'acquisizione in Impostazioni ogni volta che scegli di mostrare l'assistente ai colleghi.
Fonti
Porta Odrivyn alla tua prossima chiamata
Gratuito per Windows. Pronto in cinque minuti.