О смене разрешения написано много, однако везде разрешение меняется на единственном мониторе.
Возникла задача менять разрешение на 2 и более мониторах.
Код:
1 2 3 4 5 6 7 | var
d: _devicemodeA;
begin
EnumDisplaySettings( nil , ListBox1 . ItemIndex, D);
ChangeDisplaySettings(D, CDS_UPDATEREGISTRY);
end ;
|
работает с одним монитором , но как изменить разрешение на втором мониторе?
Листинг мониторов из lpDisplayDevice.DeviceName и lpDisplayDevice.DeviceString:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ***** NVIDIA GeForce GT 240 *****
DeviceName = \\.\DISPLAY1 - NVIDIA GeForce GT 240
Мониторы
DeviceMonitor = \\.\DISPLAY1\Monitor0 - Default Monitor
DeviceMonitor = \\.\DISPLAY1\Monitor1 - Plug and Play Monitor
DeviceMonitor = \\.\DISPLAY1\Monitor2 - Default Monitor
DeviceMonitor = \\.\DISPLAY1\Monitor3 - Default Monitor
***** NVIDIA GeForce GT 240 *****
DeviceName = \\.\DISPLAY2 - NVIDIA GeForce GT 240
Мониторы
DeviceMonitor = \\.\DISPLAY2\Monitor0 - Default Monitor
DeviceMonitor = \\.\DISPLAY2\Monitor1 - Plug and Play Monitor
DeviceMonitor = \\.\DISPLAY2\Monitor2 - Default Monitor
DeviceMonitor = \\.\DISPLAY2\Monitor3 - Default Monitor
***** NetMeeting driver *****
DeviceName = \\.\DISPLAYV1 - NetMeeting driver
Мониторы
***** RDPDD Chained DD *****
DeviceName = \\.\DISPLAYV2 - RDPDD Chained DD
|
При любой подстановке значений вместо nil - например :
\DISPLAY1\Monitor0
\DISPLAY2\Monitor0
\DISPLAY1\Monitor1
\DISPLAY2\Monitor1
меняется разрешение на первом мониторе, на втором мониторе не меняется.
Какое значение должно быть указано вместо nil в функции
Код:
1 | EnumDisplaySettings( nil , ListBox1 . ItemIndex, D);
|
для изменения разрешения на втором мониторе ?
Прошу помощи.
Спасибо.