Hola foro.
Como puedo forzar la resolucion de un monitor desde el codigo de delphi, por ejemplo si detecto que el monitor esta a 800x600 cambiarlo desde codigo a 1280 x 720, por decir un ejemplo
gracias de antemano
[RESUELTO] Modificar resolucion de monitor
Comenzado por
ramflores
, oct 06 2009 11:54
6 respuestas en este tema
#1
Escrito 06 octubre 2009 - 11:54
#2
Escrito 06 octubre 2009 - 12:31
delphi
procedure TForm1.FormCreate(Sender: TObject); var res: string; DevMode : TDeviceMode; liRetValue : Longint; begin res := IntToStr(Screen.Width)+'x'+IntToStr(Screen.Height); if (res = '800x600') then begin if EnumDisplaySettings(nil,143,Devmode) then liRetValue := ChangeDisplaySettings(DevMode,0); SendMessage(HWND_BROADCAST, WM_DISPLAYCHANGE, SPI_SETNONCLIENTMETRICS, 0); case liRetValue of DISP_CHANGE_SUCCESSFUL: ShowMessage('DISP_CHANGE_SUCCESSFUL: The settings change was successful.'); DISP_CHANGE_RESTART : ShowMessage('DISP_CHANGE_RESTART: The computer must be restarted in order for the graphics mode to work.'); DISP_CHANGE_BADFLAGS : ShowMessage('DISP_CHANGE_BADFLAGS: An invalid set of flags was passed in.'); DISP_CHANGE_FAILED : ShowMessage('DISP_CHANGE_FAILED: The display driver failed the specified graphics mode'); DISP_CHANGE_BADMODE : ShowMessage('DISP_CHANGE_BADMODE: The graphics mode is not supported'); DISP_CHANGE_NOTUPDATED: ShowMessage('DISP_CHANGE_NOTUPDATED: Unable to write settings to the registry.'); end; end; end;
Prueba con eso.
Saludos.
#3
Escrito 06 octubre 2009 - 01:41
Muchas gracias enecumene, me sirvio a la perfeccion
#4
Escrito 06 octubre 2009 - 02:25
Muchas gracias enecumene, me sirvio a la perfeccion
¡Excelente te haya servido! . pondré el tema como [RESUELTO].
#5
Escrito 06 octubre 2009 - 02:32
Muchas gracias enecumene, me sirvio a la perfeccion, de echo ya le hice unas adecuaciones
delphi
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;
#6
Escrito 06 octubre 2009 - 02:35
Muchas gracias por publicar tu solución Ramiro.
Salud OS
PD, me tome el atrevimiento de modificar tu post, le agregue la etiqueta de delphi.
Salud OS
PD, me tome el atrevimiento de modificar tu post, le agregue la etiqueta de delphi.
#7
Escrito 06 octubre 2009 - 02:37
Muchas gracias por publicar tu solución Ramiro.
Salud OS
PD,me tome el atrevimiento de modificar tu post, le agregue la etiqueta de delphi.
qué atrevido !!!!!!!!
Saludox !