PDA

Ver la Versión Completa : Cambios en resolución de pantalla


Neftali [Germán.Estévez]
30-06-2006, 12:58:11
Sobre cambios de resolución de la pantalla en W98 y NT.

PREGUNTA: ¿Cómo puedo saber desde el ejecutable la resolución de la pantalla en W.98 o NT? ¿Puedo modificarla y restablecerla al salir de la aplicación a como estuviese a mi entrada?

RESPUESTA: Sí que se puede. Para obtener la resolución actual puedes usar, por ejemplo, la función EnumDisplaySettings(). Ésta sirve para obtener todos los modos permitidos en el adaptador instalado, pero usando el valor -1 como segundo parámetro de da la información del modo actual.


Var ModoOriginal: TDevMode;
begin
EnumDisplaySettings('\\.\Display1', Cardinal(-1), ModoOriginal);
ShowMessage(IntToStr(ModoOriginal.dmPelsWidth));


A continuación puedes cambiar de modo, con ChangeDisplaySettingsEx(), y después recuperar el modo original con esa misma función.

El objeto TScreen te puede servir para obtener algunos datos, pero lo bueno de EnumDisplaySettings() es que te devuelve una estructura que después puedes usar para restablecer el modo original.