2010-02-08 79 views
10

我想知道用户是否使用多台显示器的方法。如何知道用户是否使用多台显示器

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

在此先感谢

+0

一些非常优雅的Linq的代码在C#这里由罗布·丰塞卡 - 恩索将计算当前所有屏幕的使用范围:http://stackoverflow.com/questions/2176648/screen-overlay-for-screenshot/2176683#2176683 – BillW 2010-02-08 07:56:40

回答

12

我可以给你C#.NET:

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

编辑:搜索谷歌打开了以下内容。它提到98/ME,所以可能不相关,但可能你指出正确的方向:

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

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

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

+0

该死的,打我!哈哈 – 2010-02-08 05:10:33

+0

洛尔亚是那么接近:-) – 2010-02-08 05:11:16

+0

谢谢。 这两个答案都是准确的。 我能够使用GetSystemMetrics函数作为参数传递SM_CMONITORS常量来获取监视器的数量。 – Raphael 2010-02-08 05:28:15

6

在.NET中它是作为使用Screen.AllScreens。长度属性一样简单。不过,不太了解C++。

6

GetSystemMetricsSM_CMONITORS和您去...

+0

有一种感觉,它是'GetSystemMetrics'。 – 2010-02-08 05:37:27

+0

每天使用三台显示器我需要快速学习;> – 2010-02-08 05:38:21

2

只是为了在这里记录的C/C++的解决方案:

int iMonitors = GetSystemMetrics(SM_MONITORS); 
相关问题