GetSystemMetrics () devuelve un valor incorrecto para SM_CXSCREEN

Me he encontrado con un problema interesante. Al menos en Vista, getSystemMetrics (SM_CXSCREEN) devuelve un valor incorrecto cuando la configuración de DPI del escritorio no está establecida al 100%. Por ejemplo, probé 150% en una pantalla de 1366x768 y getSystemMetrics () devuelve 911 en lugar de 1366 (y 1366 / 1.5 ~ 911)

Según el MSDN, getSystemMetrics (SM_CXSCREEN) devuelve píxeles, por lo que pensé que este valor no se vería afectado por la configuración de DPI, pero lo es. Entonces, ¿hay una forma más segura de descubrir la verdadera resolución de pantalla sin escala?

Respuestas a la pregunta(3)

Su respuesta a la pregunta