Как узнать, использует ли пользователь несколько мониторов - PullRequest
10 голосов
/ 08 февраля 2010

Я пытаюсь найти способ узнать, использует ли пользователь несколько мониторов.

Я хотел бы знать, как сделать это на родном C ++ (с помощью Win32 API) и с управляемым кодом (с помощью .NET Framework).

Заранее спасибо

Ответы [ 4 ]

12 голосов
/ 08 февраля 2010

Я могу дать вам C # .NET:

if (Screen.AllScreens.Length > 1)
{
    // Multiple monitors
}

Редактировать: Поиск в Google обнаружил следующее. В нем упоминается 98 / ME, поэтому оно может быть неактуальным, но может указать вам правильное направление:

В Windows 98 появились новые API для обработки нескольких мониторов. В примере класса мониторов используются следующие API-интерфейсы: GetMonitorInfo, MonitorFromWindow и MonitorFromRect.

В API GetSystemMetrics появились некоторые новые константы (см. Ниже), которые можно использовать для определения метрик системы с несколькими мониторами. API GetSystemMetrics возвращает информацию о среде Windows. Этот API-интерфейс можно использовать для определения количества мониторов в системе, установки одного и того же формата отображения и размера виртуального рабочего стола.

http://support.microsoft.com/kb/194578

6 голосов
/ 08 февраля 2010

GetSystemMetrics с SM_CMONITORS и вперед ...

6 голосов
/ 08 февраля 2010

В .NET это так же просто, как использовать свойство Screen.AllScreens .Length. Не слишком уверен насчет C ++.

2 голосов
/ 08 февраля 2010

Просто чтобы документировать здесь решение C / C ++:

int iMonitors = GetSystemMetrics(SM_MONITORS); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...