获取windows系统的显示器个数
问题描述
如何知道windows系统所接的显示器的个数?显示器是泛指,包括投影仪,应该说显示设备更合理些。网上找了些方法,筛选后找到较为简单的三个,供参考。
方法
主要使用了GetSystemMetrics、EnumDisplayMonitors和EnumDisplayDevices这几个函数,结合显示设备DISPLAY_DEVICE的属性,找出显示设备的个数。
方法1
使用GetSystemMetrics最简单:
int dspNum = ::GetSystemMetrics(SM_CMONITORS);
方法2
使用EnumDisplayMonitors也简单,代码如下:
int dspNum = 0;
BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData)
{
dspNum += 1;
}
EnumDisplayMonitors(NULL, NULL, Mo