【发布时间】:2012-04-24 14:05:20
【问题描述】:
我遇到了this 帖子,其中有人想使用 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,我有一个帖子,其中包含一个指向代码的指针,该代码可以从stackoverflow.com/questions/10237937/… 的 EDID 块中提取此代码
-
谢谢,我现在就试试。