如何知道用户是否正在使用多个监视器

时间:2010-02-08 05:07:58

标签: c# .net c++ winapi

我正试图找出一种方法来了解用户是否使用多台显示器。

我想知道如何在本机C ++(使用Win32 API)和托管代码(使用.NET Framework)中执行此操作。

提前致谢

4 个答案:

答案 0 :(得分:12)

我可以给你C#.NET:

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

修改:Google上的搜索结果显示如下。它提到98 / ME所以它可能没有关系,但可能指向正确的方向:

在Windows 98中有新的API用于处理多个监视器。监视器类示例中使用的API是GetMonitorInfo,MonitorFromWindow和MonitorFromRect。

GetSystemMetrics API有一些新的常量(见下文),可用于确定多监视器系统的指标。 GetSystemMetrics API返回有关Windows环境的信息。此API可用于确定系统上有多少台显示器,是否以相同的显示格式设置,以及虚拟桌面的大小。

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

答案 1 :(得分:6)

在.NET中,它就像使用Screen.AllScreens。Length属性一样简单。不过对C ++不太确定。

答案 2 :(得分:6)

GetSystemMetrics SM_CMONITORS,然后离开......

答案 3 :(得分:2)

这里只记录C / C ++解决方案:

int iMonitors = GetSystemMetrics(SM_MONITORS);