var
DeviceMode: TDeviceMode;
DisplayDevice: TDisplayDevice;
begin
Result := False;
ZeroMemory(@DisplayDevice, SizeOf(DisplayDevice));
DisplayDevice.cb := SizeOf(TDisplayDevice);
//변경할 모니터의 인덱스로 모니터 여부 확인
if EnumDisplayDevices(nil, Index, DisplayDevice, 0) then begin
ZeroMemory(@DeviceMode, SizeOf(DeviceMode));
DeviceMode.dmSize := SizeOf(TDeviceMode);
DeviceMode.dmPelsWidth := Width; //변경할 가로 길이
DeviceMode.dmPelsHeight := Height; //변경할 세로 길이
DeviceMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
//해상도 변경 가능여부 테스트
if (ChangeDisplaySettingsEx(PChar(@DisplayDevice.DeviceName[0]), DeviceMode, 0, CDS_TEST, nil) = DISP_CHANGE_SUCCESSFUL) then begin
//해상도 변경
Result := ChangeDisplaySettingsEx(PChar(@DisplayDevice.DeviceName[0]), DeviceMode, 0, 0, nil) = DISP_CHANGE_SUCCESSFUL;
end;
end;
end;
반응형