Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+5 невидимых)

 eXeL@B —› Программирование —› delphi выключить/выключить второй монитор
Посл.ответ Сообщение


Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 17 апреля 2008 14:54
· Личное сообщение · #1

Вопрос как програмно включать и при необходимости выключать доп. монитор.

-----
Что один человек сделал , другой всегда сломать может...




Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 17 апреля 2008 15:44
· Личное сообщение · #2

Не встречал такой функции. Может проще будет работать с невидимым окном "Свойства экрана"?




Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 17 апреля 2008 20:59
· Личное сообщение · #3

tihiy_grom пишет:
Не встречал такой функции


вот и я погуглил и нифига полезного не нашел.

tihiy_grom пишет:
Может проще будет работать с невидимым окном "Свойства экрана"?

Можно попробовать ,но это както через получается

-----
Что один человек сделал , другой всегда сломать может...




Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 17 апреля 2008 23:20
· Личное сообщение · #4

Максисмум что могу предложить - это взять например прогу TVTool и потрошить её (в ней можно и TV-выход включать/выключать, и второй VGA-выход)




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 17 апреля 2008 23:40
· Личное сообщение · #5

MACKLIA, думаю что каждый драйвер это делает самостоятельно и это зависит от железа. В то же время, в Виндузах есть checkbox "Extend desktop to this monitor" - значит это вынесено в интерфейс. Беда в том, что каждый драйвет по-своему конфигурирует что подключено к какому разьёму... Так что, отконфигурить доп. монитор, думаю не получится, но включить выключить - должно работать, если выяснишь как control panel (display properties) общается с драверами. Я бы посмотрел exports на всех nViadia/ATI dll-ках для начала.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 18 апреля 2008 00:38 · Поправил: tihiy_grom
· Личное сообщение · #6

почитай вот это
http://www.wasm.ru/article.php?article=Multimon http://www.wasm.ru/article.php?article=Multimon

И посмотри ещё вот это
var
monitorik: TDevMode;
begin
EnumDisplaySettings('\.\Display1',0,monitorik);
end;

Проверь что передается в monitorik, если указать параметр '\.\Display2' например. У меня только один монитор, так что проверить сам не могу

Добавлено: фигня какая-то, форум убирает символ '' из сообщения. Параметр должен быть такой ' \ \ . \ D i s p l a y 1 ' (пробелы убери)




Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

Создано: 18 апреля 2008 09:19
· Личное сообщение · #7

Погуглив на глаза попалось как выключить/включить единственный монитор в системе (может кому и сгодиться, у мну не заработало - видать моник очень древний =) )
Монитор отключенный программным путем, включить можно только программным.
Делается все это при помощи сообщений.

SendMessage(application.handle, WM_SysCommand, SC_MonitorPower, 0); //выключить
SendMessage(application.handle, WM_SysCommand, SC_MonitorPower, 1); //включить


-----
Don_t hate the cracker - hate the code.





Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 21 апреля 2008 18:22
· Личное сообщение · #8

mysterio пишет:
Погуглив на глаза попалось как выключить/включить единственный монитор в системе (может кому и сгодиться, у мну не заработало - видать моник очень древний =) )


Этот способ выключает все мониторы ,а не получилось ,потому что ,чтобы выключить то четвертый параметр SendMessage должен быть 1 ,а не 0.

-----
Что один человек сделал , другой всегда сломать может...




Ранг: 69.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 22 апреля 2008 01:12 · Поправил: userdom
· Личное сообщение · #9

MACKLIA
м.б. эта информация пригодится -
--> Link 1 <-- http://www.autohotkey.com/forum/topic21800-30.html
--> Link 2 <-- http://nod5.dcmembers.com/tv_out.html
--> Link 3<-- http://www.codeproject.com/KB/GDI/multimon.aspx
.
mysterio

SendMessage(application.handle, WM_SysCommand, SC_MonitorPower, 0); //выключить
SendMessage(application.handle, WM_SysCommand, SC_MonitorPower, 1); //включить


--> Здесь чуток подругому <-- http://www.codeproject.com/KB/system/display_states.aspx


 eXeL@B —› Программирование —› delphi выключить/выключить второй монитор
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати