Slinkkkk
asked on
Delphi: How to change secondary display resolution
Hi i want to change the secondary display resolution, im using the following code
but it only changes the main display.
but it only changes the main display.
function NewRes(XRes, YRes: DWORD; devnum : cardinal): Integer;
var
DevMode: TDeviceMode;
lpDisplayDevice: TDisplayDevice;
begin
lpdisplaydevice.cb := sizeof(lpdisplaydevice);
EnumDisplayDevices(nil,devnum,lpDisplayDevice,0 );
EnumDisplaySettings(lpdisplaydevice.DeviceName, 0, DevMode);
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or
DM_DISPLAYFREQUENCY;
DevMode.dmPelsWidth := XRes;
DevMode.dmPelsHeight := YRes;
//DevMode.dmDisplayFrequency := Frequency;
Result := ChangeDisplaySettings(DevMode, 0);
end;
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
function NewRes(XRes, YRes: DWORD; devnum : cardinal): Integer;
var
DevMode: TDeviceMode;
lpDisplayDevice: TDisplayDevice;
begin
lpdisplaydevice.cb := sizeof(lpdisplaydevice);
EnumDisplayDevices(nil,dev num,lpDisp layDevice, 0 );
EnumDisplaySettings(lpdisp laydevice. DeviceName , 0, DevMode);
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or
DM_DISPLAYFREQUENCY;
DevMode.dmPelsWidth := XRes;
DevMode.dmPelsHeight := YRes;
//DevMode.dmDisplayFrequen cy := Frequency;
Result := ChangeDisplaySettingsEx (lpdisplaydevice.DeviceNam e,DevMode, 0, (CDS_UPDATEREGISTRY), nil);
end;
var
DevMode: TDeviceMode;
lpDisplayDevice: TDisplayDevice;
begin
lpdisplaydevice.cb := sizeof(lpdisplaydevice);
EnumDisplayDevices(nil,dev
EnumDisplaySettings(lpdisp
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or
DM_DISPLAYFREQUENCY;
DevMode.dmPelsWidth := XRes;
DevMode.dmPelsHeight := YRes;
//DevMode.dmDisplayFrequen
Result := ChangeDisplaySettingsEx (lpdisplaydevice.DeviceNam
end;
ASKER
Here goes the working code if someone else need it
Open in new window