获取可用的显示分辨率列表

rob*_*rtw 6 delphi

是否可以像显示首选项一样获得分辨率列表?见附图.我正在使用Delphi XE3

我可以枚举DeviceModeList(来源:http://www.delphifeeds.com/go/s/96231)

var
   cnt : Integer;
   DevMode : TDevMode;
 begin
   cnt := 0;
   while EnumDisplaySettings(nil,cnt,DevMode) do
   begin
     with Devmode do
      ListBox1.Items.Add(Format('%dx%d %d Colors', [dmPelsWidth,dmPelsHeight,Int64(1) shl dmBitsperPel])) ;
     Inc(cnt) ;
   end;
 end; 
Run Code Online (Sandbox Code Playgroud)

第一个问题:

有结果我无法使用Windows显示首选项设置.当然我可以减少<800x600 - 但这是一个糟糕的主意:)

下一个问题:

没有关于分辨率是否显示为灰色的信息(如显示首选项)

在解决这两个问题时,我将不胜感激.

最好的祝福!

显示首选项