Я пытаюсь выяснить способ знать, использует ли пользователь несколько мониторов.
Я хотел бы знать, как сделать это в собственном C++ (использующий API Win32) и с управляемым кодом (использующий Платформу.NET).
Заранее спасибо
Я могу дать вам 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-интерфейс можно использовать для определения количества мониторов в системе, настроены ли они на один и тот же формат отображения и размер виртуального рабочего стола.
В .NET это так же просто, как использовать свойство Screen.AllScreens .Length . Однако не слишком уверен в C ++.
Просто чтобы задокументировать здесь решение C / C ++:
int iMonitors = GetSystemMetrics(SM_MONITORS);