我遇到了this发布,其中有人想使用EnumDisplayDevices查找其显示器的名称。使用EnumDisplayDevices获取显示器名称
这正是我想要的,我试图在C++中做类似的事情,但第二次调用EnumDisplayDevices似乎永远不会返回任何东西,我只能得到关于显卡的信息。
DISPLAY_DEVICE dd;
memset(&dd, 0, sizeof(DISPLAY_DEVICE));
dd.cb = sizeof(dd);
int i = 0;
while(EnumDisplayDevices(NULL, i, &dd, 0))
{
Log(_T("Device Name: %s Device String: %s"), dd.DeviceName, dd.DeviceString);
if(EnumDisplayDevices(dd.DeviceName, 0, &dd, 0))
{
Log(_T("Monitor Name: %s Monitor String: %s"), dd.DeviceName, dd.DeviceString);
}
i++;
}
我得到的输出是
Device Name: \\.\DISPLAY1 Device String: NVIDIA GeForce 9300 GE
Device Name: \\.\DISPLAYV1 Device String: NetMeeting driver
Device Name: \\.\DISPLAYV2 Device String: RDPDD Chained DD
目标平台是XP,我不能找出监视器名称的任何标准方式。有任何想法吗?
谢谢。
FWIW,我有一个指针指向代码,可以从EDID块在http://stackoverflow.com/questions提取这个帖子/ 10237937 /寻找一个可靠的映射表格屏幕设备监测edid信息 – holtavolt 2012-04-24 17:05:07
谢谢我会尝试一下现在。 – 2012-04-25 08:14:08