Управление проектором / Дисплей C # - PullRequest
1 голос
/ 15 мая 2009

Я немного поискал, но не смог найти ничего похожего на то, что искал. Мне интересно знать, как отображать различное содержимое на вторичных / третичных мониторах или проекторах с использованием C #. По сути, чего я хочу добиться, так это иметь некоторую форму представления докладчика (например, PowerPoint) на одном конкретном экране (основной дисплей) и выводить на дополнительный экран или проектор. Я никогда не пытался разработать что-то с несколькими выходами дисплея, поэтому, вероятно, любое руководство должно быть на достаточно очевидном уровне.

Если бы кто-то мог указать мне правильное направление относительно того, как обрабатывать подобные вещи в C #, это было бы очень признательно!

Ответы [ 4 ]

3 голосов
/ 15 мая 2009

Просто чтобы расширить ответ Кевена (я его добавил + 1), массив Screen.AllScreens дает вам массив объектов Screen. Объект Screen имеет свойство IsPrimary, которое можно использовать для определения того, какой из экранов является основным, а какой - вторичным (duh), а также имеет свойство WorkingArea, представляющее собой прямоугольник, возвращающий все координаты второй экран. Крутая вещь в этом заключается в том, что даже если, скажем, дополнительный экран настроен слева от основного, WorkingArea.X будет отрицательным числом, и вы можете размещать там формы или что угодно.

2 голосов
/ 15 мая 2009

Вы можете использовать свойство System.Windows.Forms.Screen.AllScreens для доступа к списку всех мониторов, о которых Windows знает. Если вы хотите использовать дисплей, который не был настроен пользователем, это становится более сложным - вам, вероятно, потребуется инициализировать и получить доступ к адаптеру дисплея с помощью DirectX.

1 голос
/ 15 мая 2009

Один из основных классов, с которыми вам нужно взаимодействовать, это Экран (это пространство имен WinForms). В целом все экраны обрабатываются как набор рабочих областей, которые вы можете использовать класс экрана, чтобы получить свойства для каждой из них.

Вы можете получить все экраны, как это ...

Screen [] screens = Screen.AllScreens;

Здесь - небольшая статья о программировании на нескольких мониторах в C #.

0 голосов
/ 02 декабря 2018

Также не забудьте установить для свойства 'StartPosition' значение 'Manual' в окне, которое вы хотите отобразить на дополнительном экране, иначе оно всегда будет отображаться на основном экране.

...