.net - quién - ¿Cómo puedo recuperar la información del monitor?
quien y en que año se invento el monitor (3)
Estoy tratando de recuperar las ID del monitor como se muestra en las propiedades de visualización de Windows (# 1, 2 ... etc.), pero parece que no puedo encontrar la manera. He intentado usar EnumDisplayMonitors y EnumDisplayDevices . Ambos devuelven algo así como "/. / DISPLAY1". Sin embargo, este número no siempre coincide con el número que muestra Windows, especialmente cuando se utilizan 2 tarjetas de video para controlar 3 o más monitores. ¿Existe una llamada de API que me falta para recuperar esta información, o hay una forma de obtenerla del registro o en otro lugar? ¡Gracias!
He intentado estos métodos:
Win32: EnumDisplayMonitors, EnumDisplayDevices: ninguno de estos monitores de retorno no están activos, y ninguno devuelve los ID correctos.
WMI: "select * from Win32_DesktopMonitor" no devuelve todos los monitores, y no hay ID.
Registro: encontré los monitores en varias ubicaciones, ninguno de los lugares que encontré tiene la información que estoy buscando.
Cualquier ayuda es muy apreciada. :)
Actualización: Estos son los números de monitor que estoy buscando:
Dependiendo del propósito, es posible que desee mirar hacia una solución basada en controladores. Sé que nVidia tiene algunas librerías decentes que te dan acceso a la mayoría de las funciones en el panel de control.
Solo una suposición, pero parece que Windows muestra iDevNum+1
en las propiedades de visualización de Windows.
¿Hiciste dos llamadas a EnumDisplayDevices? Pruebe algo como:
while (EnumDisplayDevices(0, dev, &dd, 0))
{
...
while (EnumDisplayDevices(dd.DeviceName, devMon, &ddMon, 0))
{
...
}
}