频道分类

Delphi 取得当前监视器的分辨率

作者:admin 来源: 日期:2021/1/21 22:48:19 人气: 标签:

 var

  MonInfo: TMonitorInfo;

begin

  MonInfo.cbSize := SizeOf(MonInfo);

  GetMonitorInfo(MonitorFromWindow(Handle, MONITOR_DEFAULTTONEAREST), @MonInfo);

  ShowMessage(Format('Current resolution: %dx%d',

              [MonInfo.rcMonitor.Right - MonInfo.rcMonitor.Left,

               MonInfo.rcMonitor.Bottom - MonInfo.rcMonitor.Top]));

end;

 

动态设置屏幕分辨率

Xe10.2测试可用。

 

 

 

function SetScreen(x, y: Word): Boolean;

 

var

 

   DevMode: TDeviceMode;

 

begin

 

   Result := EnumDisplaySettings(nil, 0, DevMode);

 

   if Result then

 

   begin

 

    DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;

 

    DevMode.dmPelsWidth := x;

 

    DevMode.dmPelsHeight := y;

 

    Result := ChangeDisplaySettings(DevMode, 0) = DISP_CHANGE_SUCCESSFUL;

 

   end;

 

end;