Blog

Confidentialité · Guides

Comment masquer un assistant IA du partage d'écran sous Windows (Win32 et DirectX)

The Odrivyn team · Mis à jour · 9 min de lecture

En bref

Windows masque les fenêtres d'application de la capture d'écran via l'API SetWindowDisplayAffinity avec l'indicateur WDA_EXCLUDEFROMCAPTURE. Le gestionnaire de fenêtres du bureau Windows contourne la fenêtre lors des captures d'écran et restitue à la place l'arrière-plan du bureau sous-jacent. Zoom, Microsoft Teams, Google Meet et les enregistreurs d'écran capturent uniquement le contenu sous la fenêtre de l'assistant.

Pourquoi les applications de notes standard échouent lors du partage d'écran

Le partage d'écran reste une exigence quotidienne pour les présentations à distance, les entretiens techniques et les démonstrations de logiciels. Les présentateurs partagent des écrans de bureau complets pour alterner entre les éditeurs de code, les navigateurs Web et les diapositives de présentation sans interrompre le déroulement de la réunion.

Les applications de prise de notes standard (telles que Notion, Obsidian et les éditeurs de texte système) dessinent leurs interfaces sur la surface de composition du bureau partagé. Lorsque vous ouvrez une fenêtre de note pour vérifier les points de discussion ou les invites d'entretien, chaque participant à la réunion consulte le contenu.

Le partage d’une fenêtre de programme isolée introduit des frictions pratiques. Les notifications système, les alertes en arrière-plan et les boîtes de dialogue contextuelles d'autres logiciels chevauchent souvent la bordure de l'application partagée, provoquant une exposition involontaire de données confidentielles.

Le pipeline de composition du gestionnaire de fenêtres du bureau Windows

Windows coordonne le rendu de l'affichage graphique via Desktop Window Manager (dwm.exe). Dans Windows 10 version 2004 (Build 19041), Microsoft a étendu la fonction Win32 SetWindowDisplayAffinity en ajoutant la constante WDA_EXCLUDEFROMCAPTURE.

La fonction accepte un handle de fenêtre natif (HWND) et un paramètre d'affinité : WDA_NONE (0x00), WDA_MONITOR (0x01) ou WDA_EXCLUDEFROMCAPTURE (0x11).

Lorsque le logiciel enregistre WDA_EXCLUDEFROMCAPTURE, le moteur de composition traite cette surface de fenêtre spécifique comme transparente chaque fois qu'un processus externe appelle des API de capture d'écran. Le système d'exploitation copie l'arrière-plan du bureau sous-jacent dans le tampon de capture, tout en affichant la fenêtre de l'assistant sur votre moniteur matériel physique.

Les plates-formes de conférence (notamment Zoom, Microsoft Teams, Google Meet et Slack) capturent des images d'écran via les routines Windows Graphics Capture ou BitBlt standard. Le système d'exploitation applique le filtre d'affinité d'affichage avant de renvoyer les tampons d'image au logiciel de réunion.

Composition de la swapchain DirectX et arborescence des fenêtres du bureau

Windows Desktop Window Manager coordonne les mises à jour d’affichage via les swapchains Direct3D. Lorsqu'une application peint son interface, elle soumet les surfaces de pixels à DWM, qui combine les surfaces de fenêtres individuelles dans un seul cadre d'affichage.

Les anciens outils de capture d'écran reposaient sur la fonction Win32 GDI BitBlt, qui copiait les blocs de pixels raster à partir du contexte du périphérique d'écran. Les logiciels de conférence modernes utilisent l'API Windows Graphics Capture ou l'API Desktop Duplication, qui lisent directement à partir des surfaces de mémoire vidéo Direct3D.

Étant donné que WDA_EXCLUDEFROMCAPTURE agit au sein de l’arborescence de composition DWM principale, l’exclusion s’applique à la fois au scraping d’écran GDI existant et aux pipelines vidéo Direct3D modernes. Le pipeline de composition du système d'exploitation échange la surface de fenêtre exclue avec la surface d'arrière-plan avant de soumettre le tampon de trame au consommateur de capture.

Pourquoi le navigateur Web et les wrappers de fenêtre Electron fuient pendant la présentation

De nombreux utilitaires de bureau intègrent des moteurs Web dans des wrappers Electron ou Chromium. Ces frameworks introduisent des couches d'abstraction entre l'application et le système d'exploitation sous-jacent.

Lorsqu'une application Electron tente de basculer la visibilité de la fenêtre, son architecture multi-processus crée souvent des conditions de concurrence. La fenêtre du navigateur peint sur une chaîne d'échange DirectX distincte avant que l'appel d'affinité Win32 ne soit attaché au handle de fenêtre de niveau supérieur. Dans les configurations multi-moniteurs, le déplacement d'une fenêtre sur des écrans avec différents facteurs d'échelle DPI peut réinitialiser les styles de fenêtre, faisant clignoter des notes confidentielles sur le flux vidéo partagé.

Odrivyn empêche ces fuites visuelles en compilant en tant que binaire de bureau Rust natif. Le programme applique WDA_EXCLUDEFROMCAPTURE lors de la création initiale de la fenêtre avant d'afficher une seule image, empêchant ainsi une exposition accidentelle dans toutes les configurations de moniteur.

Compatibilité de capture d'écran avec les principales applications de conférence

Vérifié sur Windows 10 Entreprise et Windows 11 Pro sur les pilotes matériels d'affichage Intel, AMD et NVIDIA.

Logiciel de conférenceMode de capture sélectionnéÉtat de la fenêtre de l'assistantCe que voient les participants à la réunion
Client de bureau ZoomPartager en plein écran (Bureau 1)Exclu du tampon de captureFond d’écran du bureau et fenêtres d’application positionnés derrière l’assistant
Équipes MicrosoftPartage d'écran entierExclu du tampon de captureContenu sous-jacent sans contours de fenêtre ni artefacts visuels
Google Meet (Chrome/Edge)Onglet Écran entierExclu du tampon de captureFond d'écran propre avec une fréquence d'images stable et aucun scintillement
Groupes SlackDiffusion sur moniteur completExclu du tampon de captureUniquement les applications exécutées sous l'interface Odrivyn
OBS Studio / CamtasiaAfficher la source de captureExclu du tampon de captureFlux vidéo enregistré propre ne contenant aucune superposition d'assistant
Outil de capture WindowsCapture rectangulaire (Win+Shift+S)Exclu du tampon de captureLa capture d'écran enregistrée affiche un fond d'écran sans aucun pixel de superposition

Comportement d’exclusion de capture du système d’exploitation vérifié avec l’accélération matérielle activée.

Vérification étape par étape : confirmez que votre fenêtre reste masquée avant un appel

Suivez cet audit en quatre étapes sur votre poste de travail avant de démarrer une présentation client importante ou un entretien à distance.

Étape 1 : Ouvrez Odrivyn et placez la fenêtre sur le fond d'écran de votre bureau ou sur une page de navigateur Web ouverte.

Étape 2 : Appuyez sur la combinaison de touches de raccourci Windows : touche Windows + Maj + S. Ce raccourci clavier appelle la superposition de l'outil de capture Windows.

Étape 3 : faites glisser un rectangle de sélection sur la zone de l'écran où se trouve la fenêtre Odrivyn.

Étape 4 : Collez la capture d'écran capturée dans une visionneuse d'images ou un document. Si l'affinité d'affichage fonctionne comme prévu, l'image affiche le fond d'écran de votre bureau ou le contenu de votre navigateur, sans aucune trace de la fenêtre de l'assistant.

Étape 5 : lancez une réunion de répétition en solo dans Zoom ou Microsoft Teams, partagez l'intégralité de votre écran de bureau et inspectez le volet d'aperçu de la réunion pour confirmer l'isolement visuel.

Performances architecturales : empreinte mémoire native Rust Win32 vs Electron

Les applications de bureau lourdes construites sur Electron ou Chromium regroupent des environnements d'exécution de navigateur Web complets, consommant 500 à 900 Mo de mémoire de travail et créant des conflits de contexte GPU lors du partage de moniteur 4K.

Odrivyn se compile comme une application Rust native avec les liaisons de création de fenêtres Win32. Le fichier exécutable pèse 5,7 Mo et consomme 34 Mo de mémoire résidente lors des réunions actives.

L'architecture native légère empêche les chutes d'images lors des présentations à l'écran et applique WDA_EXCLUDEFROMCAPTURE lors de l'initialisation de la fenêtre, garantissant que l'application ne restitue jamais une image visuelle non protégée.

Questions fréquentes

L’exclusion de capture nécessite-t-elle des privilèges d’administrateur ?

Non. Tout processus Windows standard au niveau utilisateur peut définir l’affinité d’affichage sur les fenêtres créées dans son propre thread d’exécution.

Les participants à l’appel peuvent-ils détecter un robot participant dans la réunion ?

Aucun robot n'entre dans la réunion. Le logiciel fonctionne comme un programme de bureau local indépendant qui lit l'audio des pilotes de votre carte son locale.

WDA_EXCLUDEFROMCAPTURE fonctionne-t-il sur les anciennes versions de Windows ?

Windows 10 version 2004 (Build 19041) ou plus récent est requis. Sur les versions plus anciennes, le système d'exploitation affiche une boîte noire solide plutôt qu'une couche de capture transparente.

L'affinité d'affichage protège-t-elle contre les caméras vidéo externes ?

Non. L'affinité d'affichage indique au logiciel de capture du système d'exploitation d'ignorer la fenêtre. Cela ne peut pas empêcher une caméra physique pointée vers votre moniteur matériel de capturer la lumière émise.

Puis-je désactiver l’exclusion de capture si je souhaite afficher les notes ?

Oui. Vous pouvez activer ou désactiver la protection contre la capture dans Paramètres chaque fois que vous choisissez de montrer l'assistant à vos collègues.

Sources

Emportez Odrivyn lors de votre prochain appel

Gratuit pour Windows. Prêt en cinq minutes.

Continuer la lecture