22

Как пользователь с двумя мониторами, я заметил, что приложения ведут себя по-разному в отношении того, на каком мониторе они открываются (первичный или вторичный монитор, последний монитор, открываемый приложением и т. Д.). Честно говоря, некоторые приложения раздражают меня, потому что я хочу, чтобы они открылись на моем основном мониторе, и я переведу их на свою вторую, если захочу. Однако эти приложения выполняются и не поддаются контролю, поэтому я хочу спросить о моих собственных приложениях, которые могут запускаться людьми, использующими два монитора.Как вы контролируете, на каком мониторе открывается ваше приложение?

Какие типы элементов управления доступны, чтобы люди могли указать, на каком мониторе открывается ваше приложение, разрешить приложению «помнить» монитор, на котором он был включен, когда он был закрыт и снова открыт, и заставить приложение запускать на конкретном мониторе?

Я ищу решения для всех операционных систем и языков программирования, хотя я предполагаю, что разные ОС и языки будут иметь разные элементы управления.

Вопросы, относящиеся

  • What determines the monitor my app runs on? Этот вопрос обсуждается уже существующие приложения и каким образом они решают, что контролировать, чтобы работать дальше. В принятом в настоящее время ответе предоставляются функции Windows, которые могут использоваться для управления позиционированием приложения при запуске.
  • Start program on second monitor? предоставляет некоторые решения Delphi для принудительного запуска приложения на конкретном мониторе.
+0

Я определил два похожих вопроса, которые ориентированы на ОС Windows. Тем не менее, меня интересуют общие понятия юзабилити о том, как определить, с чего начать приложение и кросс-платформенные (или любые не Windows) решения проблемы. – 2008-10-16 12:09:39

ответ

9

В качестве программиста Windows я управляю начальным монитором окон, созданных приложениями, на a. сохранение моей последней позиции в реестре и восстановление ее, и b. отсутствие хранимой информации, установив исходную позицию в значения магического флага, которые окна используют для позиционирования приложения, используя свою логику по умолчанию. Логика по умолчанию изменяется от ОС к ОС, так как MS улучшает работу пользователя, но, как правило, обеспечивает, чтобы приложение открывалось на любом мониторе, с которым пользователь, скорее всего, будет смотреть.

Как пользователь с системой мониторинга Windows XP/Vista с несколькими мониторами, я бы использовал диспетчер дескрипторов nVidia, который имеет возможность устанавливать стартовые позиции для приложений, в противном случае нет соответствующего поведения.

+0

Я видел комментарии в других вопросах о реестре. Похоже, это обычное место, но я не уверен, подходит ли для этого реестр. Но, похоже, это обычная практика, поэтому это нужно рассмотреть. – 2008-10-16 12:29:42

+0

Реестр или файл типа .ini или .config. – 2008-10-16 13:05:41

2

С точки зрения перспективного менеджера окон Unix и Linux вы не контролируете. Менеджер окон управляет позиционированием окна.

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

См: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html

2

Одна вещь, чтобы рассмотреть, что конфигурация монитора может быть изменена между ними сеансами работы приложения (например, работает на ноутбуке, который иногда может быть пристыкован и использует внешний монитор). Убедитесь, что ваше приложение помещено в видимый диапазон.

Что касается API, то есть класс System.Windows.Forms.Screen, который дает вам некоторую информацию.

-1

Имел подобную проблему. Нашли следующее:

Правый клик в заголовке окна и выберите «Дополнительные действия» -> «Настройки диспетчера окон». Там выберите «Фокус» в столбце слева. Включить опцию «Активный экран следует за мышью».

Если никаких других значений по умолчанию не указано, на текущем активном экране появятся окна. С описанной выше процедурой положение мыши определяет этот активный экран.

Надежда, что помогает,

Бест, Bb

0

В KDE 4.13.3 (mayby ​​в некоторых olders и newers вы можете сделать это (перевод может быть inacurrate - я использую польский вариант):

  1. запустить нужную программу
  2. правой кнопкой мыши на строке заголовка
  3. выбрать «дополнительные действия» -> «дополнительные параметры окна ...» (даже больше вариантов под «а dical program settings ... ")
  4. перейти на вкладку« размер & макет »
  5. Отметьте галочкой« Экран »и выберите« Сила »и выберите номер экрана. Окно этой программы будет открыто всегда на этом экране.