Ver Mensaje Individual
  #1  
Antiguo 28-01-2007
|NoName| |NoName| is offline
Miembro
 
Registrado: ene 2007
Posts: 31
Reputación: 0
|NoName| Va por buen camino
Obtener frecuencia del monitor

Quiero ejecutar una aplicación a una resolución predeterminada, pero claro, cuando la misma se cierra es necesario volver a la configuración anterior.

http://www.clubdelphi.com/foros/showthread.php?t=37575

El código publicado en ese hilo me funciona correctamente salvo por el detalle que no tiene en cuenta la frecuencia del monitor.
Descubrí que la misma se puede obtener utilizando EnumDisplaySettings() pero sinceramente no consigo implementarlo.
Le agradezco desde yá a cualquiera que me pueda dar una mano para incorporar esta característica.


Código Delphi [-]
uses Windows;

function SetScreenResolution(Ancho, Altura: integer): Longint;
var
  DeviceMode: TDeviceMode;
begin
  with DeviceMode do begin
    dmSize := SizeOf(TDeviceMode);
    dmPelsWidth := Ancho;
    dmPelsHeight := Altura;
    dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
  end;
  Result := ChangeDisplaySettings(DeviceMode, CDS_UPDATEREGISTRY);
end;

// implementación

var
  AnchoViejo, AlturaVieja: integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
  AnchoViejo := GetSystemMetrics(SM_CXSCREEN);
  AlturaVieja := GetSystemMetrics(SM_CYSCREEN);
  SetScreenResolution(800, 600);
end;


// reestablecer
procedure TForm1.Button2Click(Sender: TObject);
begin
  SetScreenResolution(AnchoViejo, AlturaVieja);
end;

Última edición por |NoName| fecha: 29-01-2007 a las 20:17:25.
Responder Con Cita