How to know if the user is using multiple monitors
I'm trying to figure out a way to know if the user is using multiple monitors.
I would like to know how to do this in 开发者_开发问答native C++ (using the Win32 API) and with managed code (using the .NET Framework).
Thanks in advance
I can give you C# .NET:
if (Screen.AllScreens.Length > 1)
{
// Multiple monitors
}
Edit: A search on Google turned up the following. It mentions 98/ME so it might no be relevant but may point you in the right direction:
There are new APIs for handling multiple monitors in Windows 98. The APIs used in the monitors class sample are GetMonitorInfo, MonitorFromWindow and MonitorFromRect.
The GetSystemMetrics API has some new constants (see below) that can be used to determine the metrics of a multiple monitor system. The GetSystemMetrics API returns information about the Windows environment. This API can be used to determine how many monitors are on the system, whether they are set at the same display format, and the size of the virtual desktop.
http://support.microsoft.com/kb/194578
GetSystemMetrics with SM_CMONITORS
and off you go...
In .NET it's as simple as using the Screen.AllScreens.Length property. Not too sure about C++ though.
Just to document here the C/C++ solution:
int iMonitors = GetSystemMetrics(SM_MONITORS);
精彩评论