Blog

Privacidad · Guías

Cómo ocultar un asistente de IA de Screen Share en Windows (Win32 y DirectX)

The Odrivyn team · Actualizado · 9 min de lectura

En pocas palabras

Windows oculta las ventanas de la aplicación de la captura de pantalla a través de la API SetWindowDisplayAffinity con el indicador WDA_EXCLUDEFROMCAPTURE. El Administrador de ventanas del escritorio de Windows omite la ventana durante los pases de captura de pantalla y, en su lugar, representa el fondo del escritorio subyacente. Zoom, Microsoft Teams, Google Meet y los grabadores de pantalla capturan solo el contenido debajo de la ventana del asistente.

Por qué las aplicaciones de notas estándar fallan al compartir la pantalla

Compartir pantalla sigue siendo un requisito diario para presentaciones remotas, entrevistas técnicas y demostraciones de software. Los presentadores comparten pantallas de escritorio completas para alternar entre editores de código, navegadores web y diapositivas de presentación sin interrumpir el flujo de la reunión.

Las aplicaciones estándar para tomar notas (como Notion, Obsidian y los editores de texto del sistema) dibujan sus interfaces en la superficie de composición del escritorio compartido. Cuando abre una ventana de notas para verificar los puntos de conversación o las indicaciones de la entrevista, todos los participantes de la reunión ven el contenido.

Compartir una ventana de programa aislada introduce fricciones prácticas. Las notificaciones del sistema, las alertas en segundo plano y los cuadros de diálogo emergentes de otro software a menudo se superponen al borde compartido de la aplicación, lo que provoca la exposición involuntaria de datos confidenciales.

El proceso de composición del Administrador de ventanas del escritorio de Windows

Windows coordina la representación de la visualización gráfica a través del Administrador de ventanas del escritorio (dwm.exe). En Windows 10 versión 2004 (compilación 19041), Microsoft amplió la función Win32 SetWindowDisplayAffinity agregando la constante WDA_EXCLUDEFROMCAPTURE.

La función acepta un identificador de ventana nativo (HWND) y un parámetro de afinidad: WDA_NONE (0x00), WDA_MONITOR (0x01) o WDA_EXCLUDEFROMCAPTURE (0x11).

Cuando el software registra WDA_EXCLUDEFROMCAPTURE, el motor de composición trata esa superficie de ventana específica como transparente cada vez que un proceso externo invoca API de captura de pantalla. El sistema operativo copia el fondo del escritorio subyacente en el búfer de captura, mientras pinta la ventana del asistente en su monitor de hardware físico.

Las plataformas de conferencias (incluidas Zoom, Microsoft Teams, Google Meet y Slack) capturan fotogramas de pantalla mediante rutinas estándar de Windows Graphics Capture o BitBlt. El sistema operativo aplica el filtro de afinidad de visualización antes de devolver los buffers de cuadros al software de la reunión.

Composición de la cadena de intercambio de DirectX y árbol de ventanas del escritorio

Windows Desktop Window Manager coordina las actualizaciones de visualización a través de cadenas de intercambio Direct3D. Cuando una aplicación pinta su interfaz, envía superficies de píxeles a DWM, que combina superficies de ventanas individuales en un solo marco de visualización.

Las herramientas de captura de pantalla heredadas se basaban en la función BitBlt de Win32 GDI, que copiaba bloques de píxeles rasterizados del contexto del dispositivo de pantalla. El software de conferencias moderno utiliza la API de captura de gráficos de Windows o la API de duplicación de escritorio, que leen directamente desde las superficies de memoria de vídeo Direct3D.

Debido a que WDA_EXCLUDEFROMCAPTURE actúa dentro del árbol de composición DWM principal, la exclusión se aplica tanto en el screen scraping GDI heredado como en los canales de video Direct3D modernos. El sistema operativo que compone la canalización intercambia la superficie de la ventana excluida con la superficie de fondo antes de enviar el búfer de fotogramas al consumidor de captura.

Por qué el navegador web y los envoltorios de ventanas de Electron se filtran durante la presentación

Muchas utilidades de escritorio empaquetan motores web dentro de contenedores Electron o Chromium. Estos marcos introducen capas de abstracción entre la aplicación y el sistema operativo subyacente.

Cuando una aplicación de Electron intenta alternar la visibilidad de la ventana, su arquitectura multiproceso a menudo crea condiciones de carrera. La ventana del navegador pinta en una cadena de intercambio de DirectX separada antes de que la llamada de afinidad de Win32 se adjunte al identificador de ventana de nivel superior. En configuraciones de varios monitores, mover una ventana a través de pantallas con diferentes factores de escala de DPI puede restablecer los estilos de ventana y mostrar notas confidenciales en la transmisión de video compartida.

Odrivyn evita estas fugas visuales al compilarlo como un binario de escritorio nativo de Rust. El programa aplica WDA_EXCLUDEFROMCAPTURE durante la creación inicial de la ventana antes de mostrar un solo cuadro, evitando la exposición accidental en todas las configuraciones del monitor.

Compatibilidad de captura de pantalla entre las principales aplicaciones de conferencias

Verificado en Windows 10 Enterprise y Windows 11 Pro en controladores de hardware de pantalla Intel, AMD y NVIDIA.

Software de conferenciaModo de captura seleccionadoEstado de la ventana del asistenteQué ven los asistentes a la reunión
Cliente de escritorio ZoomCompartir pantalla completa (escritorio 1)Excluido del búfer de capturaFondo de escritorio y ventanas de aplicaciones ubicadas detrás del asistente
Equipos de MicrosoftCompartir pantalla completaExcluido del búfer de capturaContenido subyacente sin contornos de ventanas ni artefactos visuales
Reunión de Google (Chrome/Edge)Pestaña de pantalla completaExcluido del búfer de capturaFondo de escritorio limpio con velocidad de fotogramas constante y cero parpadeos
Grupos flojosTransmisión en monitor completoExcluido del búfer de capturaSólo aplicaciones que se ejecutan debajo de la interfaz Odrivyn
Estudio OBS / CamtasiaMostrar fuente de capturaExcluido del búfer de capturaTransmisión de video grabada limpia que no contiene superposiciones de asistente
Herramienta de recorte de WindowsCaptura rectangular (Win+Shift+S)Excluido del búfer de capturaLa captura de pantalla guardada muestra un fondo de pantalla sin píxeles superpuestos

Comportamiento de exclusión de captura del sistema operativo verificado con la aceleración de hardware habilitada.

Verificación paso a paso: confirme que su ventana permanezca oculta antes de una llamada

Siga esta auditoría de cuatro pasos en su estación de trabajo antes de comenzar una presentación importante para un cliente o una entrevista remota.

Paso 1: abra Odrivyn y coloque la ventana sobre el fondo de pantalla de su escritorio o sobre una página abierta del navegador web.

Paso 2: Presione la combinación de teclas de método abreviado de Windows: Tecla de Windows + Mayús + S. Este método abreviado de teclado invoca la superposición de la herramienta de recorte de Windows.

Paso 3: arrastre un rectángulo de selección sobre el área de la pantalla donde se encuentra la ventana de Odrivyn.

Paso 4: pegue la captura de pantalla capturada en un visor de imágenes o documento. Si la afinidad de visualización funciona según lo previsto, la imagen muestra el fondo de pantalla de su escritorio o el contenido del navegador, sin rastro de la ventana del asistente.

Paso 5: inicie una reunión de ensayo en solitario en Zoom o Microsoft Teams, comparta toda la pantalla de su escritorio e inspeccione el panel de vista previa de la reunión para confirmar el aislamiento visual.

Rendimiento arquitectónico: huella de memoria nativa de Rust Win32 frente a Electron

Las aplicaciones de escritorio pesadas creadas en Electron o Chromium combinan tiempos de ejecución completos del navegador web, consumen de 500 a 900 megabytes de memoria de trabajo y crean contención de contexto de GPU al compartir monitores 4K.

Odrivyn se compila como una aplicación Rust nativa con enlaces de creación de ventanas Win32. El archivo ejecutable pesa 5,7 megabytes y consume 34 megabytes de memoria residente durante las reuniones activas.

La arquitectura nativa liviana evita la caída de cuadros durante las presentaciones en pantalla y aplica WDA_EXCLUDEFROMCAPTURE en la inicialización de la ventana, lo que garantiza que la aplicación nunca muestre un cuadro visual desprotegido.

Preguntas frecuentes

¿La exclusión de captura requiere privilegios de administrador?

No. Cualquier proceso estándar de Windows a nivel de usuario puede establecer la afinidad de visualización en ventanas creadas dentro de su propio hilo de ejecución.

¿Pueden los participantes de la llamada detectar un robot asistente en la reunión?

Ningún bot ingresa a la reunión. El software funciona como un programa de escritorio local independiente que lee el audio de los controladores de su tarjeta de sonido local.

¿WDA_EXCLUDEFROMCAPTURE funciona en versiones anteriores de Windows?

Se requiere Windows 10 versión 2004 (compilación 19041) o posterior. En versiones anteriores, el sistema operativo muestra un cuadro negro sólido en lugar de una capa de captura transparente.

¿La afinidad de pantalla protege contra cámaras de video externas?

No. Display Affinity indica al software de captura del sistema operativo que omita la ventana. No puede evitar que una cámara física apuntada a su monitor de hardware capture la luz emitida.

¿Puedo desactivar la exclusión de captura si quiero mostrar notas?

Sí. Puede activar o desactivar la protección de captura en Configuración cada vez que elija mostrar el asistente a sus colegas.

Fuentes

Lleva Odrivyn a tu próxima llamada

Gratis para Windows. Listo en cinco minutos.

Seguir leyendo