Necesito encontrar la "mejor" o resolución nativa para un monitor LCD adjunto en Windows (que luego estableceré programáticamente y sabré cómo hacerlo). Permítanme repetir que no necesito la resolución actual de Windows, ni necesito preocuparse por los CRT/proyectores.¿Cómo consultar la resolución de hardware NATIVE del monitor principal en Windows?
que he visto trabajar con este programa, así que sé que es posible a pesar de los detractores: http://www.entechtaiwan.com/util/moninfo.shtm
Sería mejor hablar directamente al monitor y consultar la información EDID. Sin embargo, he visto que está almacenado en caché en el registro y que no tendría problemas para desenterrarlo de HKLM \ SYSTEM \ CurrentControlSet \ Enum \ DISPLAY, pero no puede encontrar la manera de unir los datos con el monitor principal actual.
Lo que encontrar este programa en C: http://www.tech-archive.net/Archive/Development/microsoft.public.development.device.drivers/2004-08/0294.html y un programa Python similar: http://www.koders.com/python/fid7FCCE3C908F376DC62F06CAD9B11C6D7C1CFA78F.aspx
Por desgracia, estoy teniendo un montón de problemas para convertir el programa C a pitón, como el código correspondiente doesn' Parece que está en los módulos de win32all. Intenté compilarlo, pero no tengo espacio en disco para un compilador grande y no he usado C por años. Estoy un poco fuera de mi elemento con ctypes también.
Mi plan B utilizará EnumDisplaySettings() para encontrar el valor más grande para la resolución y configurarlo para eso. En la PC que he probado, da las res correctas, pero aún podría ser problemático.
Preferiría una solución en python, pero tal vez alguien podría ayudarme a modificar el programa C para escupir la resolución y compilarla. Gracias por adelantado.
Actualización:
He encontrado una posible solución. Ahora estoy leyendo WMI para encontrar un monitor que esté disponible (no fuera de línea), tomando su identificación de dispositivo PNP y leyendo EDID del registro en la subclave con el valor de identificación. Luego analizo los datos para los bytes 38 y 39 y los calculo. No muy limpio, pero estoy obteniendo resultados. Si esta es una forma razonable de hacerlo, cerraré esta pregunta, gracias.
También hay compiladores bastante pequeños, como Pelles C y DevCpp. –
Es bueno saberlo, gracias. –
No cierre la pregunta, responda a sí mismo en una nueva respuesta. Mañana incluso podrías aceptar tu propia respuesta si quieres. Esto fue interesante –