Подтвердить что ты не робот

Как вы контролируете, на каком мониторе открывается ваше приложение?

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

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

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

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

  • Что определяет монитор моего приложения? В этом вопросе обсуждаются существующие приложения и как они решат, на каком мониторе работать. В принятом в настоящее время ответе предоставляются функции Windows, которые могут использоваться для управления позиционированием приложения при запуске.
  • Запустить программу на втором мониторе? предоставляет некоторые решения Delphi для принудительного запуска приложения на конкретном мониторе.
4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Смотрите: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html

Ответ 3

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

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

Ответ 4

В KDE 4.13.3 (может быть, у некоторых старых и новичков вы можете это сделать (перевод может быть непостоянным - я использую польскую версию):

  • запустите нужную программу
  • щелкните правой кнопкой мыши по строке заголовка
  • выберите "больше действий" → "дополнительные настройки окна..." (еще больше параметров находятся под "дополнительными настройками программы..." )
  • перейти на вкладку "размер и макет"
  • Отметьте флажком "Экран" и выберите "Сила" и выберите номер экрана. Окно этой программы будет открыто всегда на этом экране.

Ответ 5

Была аналогичная проблема. Найдено следующее:

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

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

Надеюсь, что это поможет,

Лучший, Bb