Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2014, 01:50   #1
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию Программно переключать мониторы

Собственно проблема: видеокарта 7900GS с Dual View, монитор подключен ко 2 порту т.к. первый неисправен. Windows постоянно переключает картинку на 1 монитор, пока не получается понять почему.
Чтобы не тыкать каждый раз кабели появилась мысль накидать программу, которая будет переключать основной монитор (сделать это через свойства экрана вслепую я естественно не могу т.к. ничего не вижу)
Может есть готовые сорцы для Delphi?
calypso вне форума Ответить с цитированием
Старый 21.07.2014, 02:09   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Есть.. разбирайтесь: http://stackoverflow.com/questions/9...rimary-monitor
Человек_Борща вне форума Ответить с цитированием
Старый 21.07.2014, 09:40   #3
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Смущает вот эта запись:
http://stackoverflow.com/questions/5...gs-windows-api
Цитата:
There is nothing in the WinAPI that controls the config for multiple monitors, such as which monitors participate in the virtual desktop. This is done at the device driver level, using whatever GUI the driver provides
Неужели опять придется лезть в NvAPI.sys и ковыряться с драйвером...
Самый простой вариант я думаю включить зеркалирование дисплеев, тогда картинка появится на 2 порте и я уже смогу взять ситуацию под контроль.
calypso вне форума Ответить с цитированием
Старый 21.07.2014, 10:05   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Нет. Внимательнее там есть код смены настроек экрана.

Стоп... 2 у вас подключено 2 монитора. 1 неисправный. Но при старте ОС, показывает первый. Значит, первый монтор исправный т.к. отвечает ПК и потому ПК его ставит.

Что мешает выкинуть вообще неисправный монитор? Что мешает воткнуть рабочий на место первого? Что мешает включить одну и туже картинку на обеих мониторах и второй монитор сделать основным?

Последний раз редактировалось Человек_Борща; 21.07.2014 в 10:09.
Человек_Борща вне форума Ответить с цитированием
Старый 21.07.2014, 10:51   #5
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Нет, мониторы все исправны. На 1-м порте DVI не подключено ничего, даже переходника.
Текущий монитор один,подключен к 2 порту видеокарты через переходник DVI-VGA. В нормальной ситуации самопроизвольно Windows не должна переключать порт на 1-й, если установлен монитор на 2 порте как основной.
Я сейчас выясняю в чем причины этого глюка. Периодически при загрузке (Vista x64) монитор на порте 2 тупо выключается и всё - картинка идет на неисправный 1-й порт.
Я пробовал через реестр химичить, один раз сработало - сейчас опять нет сигнала на мониторе. Поэтому придумал накидать программку и добавить её в автозагрузку. Она будет детектить какой монитор основной и если 1-й, то переключит изображение на 2-й порт.

Последний раз редактировалось calypso; 21.07.2014 в 10:54.
calypso вне форума Ответить с цитированием
Старый 21.07.2014, 14:20   #6
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Сделать порт 2 - портом по умолчанию и будет тебе счастье. Или просто почини порт 1.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 21.07.2014, 15:09   #7
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Ближе к теме:
ещё материал кое-какой нарыл:
http://www.wasm.ru/wault/article/show/Multimon
А то что выше было, не пойму здесь:
Код:
EnumDisplaySettings(PChar(AOldPrimaryDevice), ENUM_REGISTRY_SETTINGS, DevMode1);
Где взять AOldPrimaryDevice и ещё на ENUM_REGISTRY_SETTINGS ругается Делфи. Или надо ещё прототип EnumDisplaySettings делать?
Я вообще плаваю в этой теме, в каких случаях надо делать прототип для c++ хидера (который готовый тупо подключается к проекту),а в каких случаях не надо.
calypso вне форума Ответить с цитированием
Старый 21.07.2014, 16:13   #8
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Вот ещё нарыл коды на VB:
http://www.codeproject.com/Articles/...playSettingsEx

Практически готовое решение, делаешь скрипт и в авторан. Как раз я так понял на случай если монитор выключается
calypso вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IPS - мониторы Larboss Компьютерное железо 14 21.05.2014 23:17
Мониторы EddieG Компьютерное железо 2 17.01.2011 06:28
FPD мониторы Boomer Помощь студентам 2 13.10.2010 20:39
Хочу переключать язык программно Moly Win Api 3 19.03.2010 14:05
2 мониторы с одно пк aska2013 Компьютерное железо 4 04.04.2009 23:10