Показать сообщение отдельно
  #1  
Старый 10.11.2010, 16:48
Ashkan Ashkan вне форума
Прохожий
 
Регистрация: 10.11.2010
Сообщения: 1
Репутация: 10
По умолчанию Смена разрешения на 2 и более мониторах

О смене разрешения написано много, однако везде разрешение меняется на единственном мониторе.
Возникла задача менять разрешение на 2 и более мониторах.
Код:
var

 d: _devicemodeA;
begin
 EnumDisplaySettings(nil, ListBox1.ItemIndex, D);
 ChangeDisplaySettings(D, CDS_UPDATEREGISTRY);
end;
работает с одним монитором , но как изменить разрешение на втором мониторе?

Листинг мониторов из lpDisplayDevice.DeviceName и lpDisplayDevice.DeviceString:
Код:
***** 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 в функции
Код:
EnumDisplaySettings(nil, ListBox1.ItemIndex, D);
для изменения разрешения на втором мониторе ?

Прошу помощи.
Спасибо.
Ответить с цитированием