HLFX.Ru Forum
Показать все 13 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Номера дисплеев в системе (https://hlfx.ru/forum/showthread.php?threadid=3480)


Отправлено Ku2zoff 12-06-2012 в 17:43:

Angry Номера дисплеев в системе

Дело такое. Механизм нумерации дисплеев в системе придумали какие-то фашисты. Чесслово бесит. Короче говоря, имею два дисплея: жк-моник и телик. Какого-то чёрта телевизор получает в системе номер 1, а монитор - номер 2. Хотя по идее HDMI разъём для телевизоров, и устройство, подключаемое через него так же по идее не может быть основным. Средствами ОС сделать основным монитором именно монитор легко. На нём отображается рабочий стол и панель задач, всё чин по чину. Но есть такие "особо умные" приложения, которые в полноэкранном режиме разворачиваются не на тот дисплей, который помечен как основной, а на тот, который в системе под номером один. И номера дисплеев никак не поменять. МБ есть какой-нибудь выход?


Отправлено XaeroX 12-06-2012 в 17:50:

Цитата:
Ku2zoff писал:
МБ есть какой-нибудь выход?

Присоединяюсь к вопросу, кстати. У самого такая же проблема в волатиле. Похоже, в OpenGL нет никаких средств для выбора дисплея
А вот в DirectX, емнип, есть... Ну ещё бы, он с виндой на "ты".

Добавлено 13-06-2012 в 00:50:

Ой, я дурак... ChangeDisplaySettingsEx...

__________________

xaerox on Vivino


Отправлено Ku2zoff 12-06-2012 в 17:53:

Цитата:
XaeroX писал:
Похоже, в OpenGL нет никаких средств для выбора дисплея

Ага, вот оно что. Вот почему Virtualbox чудит, а VMware нет.

Добавлено 13-06-2012 в 00:53:

Цитата:
XaeroX писал:
ChangeDisplaySettingsEx...

Кхм, ну это если своё приложение делаешь. А у меня-то чужая прога. И мне проще поменять номера дисплеев в системе, чем собирать чужие исходники.


Отправлено XaeroX 12-06-2012 в 17:56:

Ku2zoff
Нет, стоп. Давайте разберёмся. ChangeDisplaySettings срабатывает именно на том дисплей девайсе, что выбран как основной. Другой вопрос, если ты перетащил окошко волатилы на второй (не основной) монитор, нажимаешь там Alt+Enter и ждёшь, что она развернётся именно на нём. Вот тут и надо юзать ChangeDisplaySettingsEx.
А "особо умные" приложения, наверное, юзают не ChangeDisplaySettings, а таки ChangeDisplaySettingsEx, выбирая нулевой девайс. В то время как им следовало бы юзать ChangeDisplaySettings. Тут, видимо, классическая ситуация "горе от ума".

Добавлено 13-06-2012 в 00:56:

Цитата:
Ku2zoff писал:
А у меня-то чужая прога

Для начала скажи, она DirectX или OpenGL использует?

__________________

xaerox on Vivino


Отправлено Ku2zoff 12-06-2012 в 17:59:

Virtualbox это. Конечно OpenGL.

Добавлено 13-06-2012 в 00:59:

Выбирает нулевой девайс, да.


Отправлено XaeroX 12-06-2012 в 17:59:

И устройство, подключенное через HDMI, получает номер дисплея 1?

__________________

xaerox on Vivino


Отправлено Ku2zoff 12-06-2012 в 18:09:

Так точно. Причём внаглую. Это скорее всего WDDM виноват. В ХРюшке моя видеокарточка попросту не определялась. А когда я устанавливал на неё дровишки, то моник уже был под номером один, а телик надо было добавить вручную через мастер многодисплейной конфигурации. А вот в семёрке WDDM определяет мою карточку и автоматом настраивает все устройства и разрешения экранов для них. И конечно же, телик делает основным дисплеем под номером 1.


Отправлено XaeroX 12-06-2012 в 18:18:

Ku2zoff
В панели управления нельзя это как-то поменять? Я с таким просто не сталкивался.
Но вообще похоже на глюк Virtualbox, что она не учитывает, какой дисплей установлен первичным. Как я уже описал, средствами WinAPI этот учёт сделать вполне реально.

__________________

xaerox on Vivino


Отправлено Ku2zoff 12-06-2012 в 18:46:

Цитата:
XaeroX писал:
В панели управления нельзя это как-то поменять?

Нет.
Цитата:
XaeroX писал:
Но вообще похоже на глюк Virtualbox, что она не учитывает, какой дисплей установлен первичным.

Именно. Потому что все остальные приложения, будь то игры или видеоплееры нормально всё определяют. Игры разворачиваются только на основной дисплей, а плеер только на тот, на котором в данный момент находится его окно.


Отправлено XaeroX 12-06-2012 в 20:13:

Ku2zoff
Попробуй написать авторам.

__________________

xaerox on Vivino


Отправлено underworlddemon 12-06-2012 в 23:50:

в гугле нет ничего про настройки через конфиг-файлы самого виртуалЯщика ?
ибо через низкоуровневые настройки чего только не делал (даже время останавливал)


Отправлено Ku2zoff 13-06-2012 в 03:01:

Провёл несколько махинаций. Сначала отключил телевизор (ну то есть в конфиге системы оставил только монитор, шнур не выдёргивал). Естественно всё нормально заработало. Потом снова подключил его. Та же туфта что и раньше. Потом снова отключил, и снова включил через панель управления Nvidia, а не через диалог винды как до этого. Функционально разницы никакой. ! но, работает теперь правильно. Теперь ясно, кто фашисты и кого надо пинать ногами. Мелкомягкие редко что-то нормально делают.

Добавлено 13-06-2012 в 10:01:

Хотя может быть это я сглупил. В настройках вирутальной машины можно выбирать, какой дисплей хоста юзать в полноэкранном режиме. Но тогда претензии к авторам виртуалбокса, потому что изначально юзался не основной системный дисплей, а дисплей под номером 1.


Отправлено qpAHToMAS 13-06-2012 в 04:05:

Цитата:
Ku2zoff писал:
потому что изначально юзался не основной системный дисплей, а дисплей под номером 1.

Многие приложения вообще разворачиваются/отображаются на том дисплее, на котором были запущены.

Это еще "цветочки" , ни кому не пожелаю встретить программу, окно которой имеет функцию прилипания к краям экрана, но только для основного монитора .


Временная зона GMT. Текущее время 21:16.
Показать все 13 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024