Para mi proyecto actual de C++, necesito detectar una cadena única para cada monitor que esté conectado y activo en una gran cantidad de computadoras.EnumDisplayDevices vs WMI Win32_DesktopMonitor, ¿cómo detectar monitores activos?
La investigación ha señalado a 2 opciones
utilizar WMI y consultar el Win32_DesktopMonitor para todos los monitores activos. Use PNPDeviceID para la identificación única de monitores.
Utilice la API EnumDisplayDevices y cave para obtener la ID del dispositivo.
Estoy interesado en utilizar el ID de dispositivo para la identificación del modelo único porque los monitores usando el enchufe del defecto y jugar conductor reportará una cadena genérica como el nombre del monitor "enchufe del defecto monitor de reproducción"
I he tenido problemas con el método WMI, parece que solo estoy devolviendo 1 monitor en mi máquina Vista, mirando al doco resulta que no funciona como se esperaba en dispositivos que no son WDDM.
EnumDisplayDevices parece ser un poco problemático para ponerse en marcha cuando se ejecuta desde un servicio en segundo plano (especialmente en Vista), si está en la sesión 0 no devolverá información.
Alguien más tenía que hacer algo similar (Encontrar cadena modelo único para todos los monitores activos conectados?)
Qué enfoque funcionó mejor?
Intenté implementar tu código. Estoy obteniendo un identificador de error 'DeviceID no está definido' Intenté buscar en msdn un include apropiado sin embargo no pude encontrar ningún parámetro DeviceID separado. ¿Puede decirme qué archivo de encabezado debo incluir para identificar DeviceID? – newbie2015