Hola, puedes forzar la resolución de tu programa, sin necesidad de informar al usuario.
Código Delphi
[-]
unit Varios;
var
Resoriginal: TDevMode; Resolucion_Horizontal, Resolucion_Vertical: Cardinal;
...
procedure ComprobarResolucion(Restaurar: Boolean);
var NuevaRes:TDevMode;
begin
if (Resolucion_Horizontal <> 0) and (Resolucion_Vertical <> 0)
then begin
if Restaurar
then begin
Windows.ChangeDisplaySettings(Resoriginal, CDS_UPDATEREGISTRY);
end
else begin
Windows.EnumDisplaySettings(Nil, Cardinal(-1), NuevaRes);
If ( NuevaRes.dmpelsWidth <> Cardinal(Resolucion_Horizontal) ) or
( NuevaRes.dmpelsheight <> Cardinal(Resolucion_Vertical) )
then begin
Windows.EnumDisplaySettings(Nil, Cardinal(-1), NuevaRes);
NuevaRes.dmpelsWidth := Resolucion_Horizontal;
NuevaRes.dmPelsHeight := Resolucion_Vertical;
if Windows.ChangeDisplaySettings(NuevaRes, CDS_UPDATEREGISTRY) <> 0
then begin
Resolucion_Horizontal := Resoriginal.dmpelsWidth;
Resolucion_Vertical := Resoriginal.dmPelsHeight;
Windows.ChangeDisplaySettings(Resoriginal, CDS_UPDATEREGISTRY);
end;
end;
end;
end
else begin
Resolucion_Horizontal := Resoriginal.dmpelsWidth;
Resolucion_Vertical := Resoriginal.dmPelsHeight;
end;
end;