【发布时间】:2013-09-23 21:38:11
【问题描述】:
我将多台显示器插入机器:其中 2 台插入外部视频适配器,其中 2 台插入内部视频芯片。 我想知道外接视频适配器插了哪些显示器,如何找出来?
我查看了EnumDisplayDevices,发现DISPLAY_DEVICE 结构具有DISPLAY_DEVICE_PRIMARY_DEVICE 标志,它可以显示主屏幕是什么视频设备。但这还不足以解决整个任务。
更新:
我试过EnumDisplayDevices,在它的DISPLAY_DEVICE 对象中有一个字段DeviceString。
DISPLAY_DEVICE DispDev;
ZeroMemory(&DispDev, sizeof(DispDev));
DispDev.cb = sizeof(DispDev);
DWORD nDeviceIndex = 0;
EnumDisplayDevices(NULL, nDeviceIndex, &DispDev, 0);
// DispDev.DeviceString now is what I need
它包含视频适配器的名称,例如Intel(R) HD Graphics 4000。
但是名字可以不一样,怎么区分集成视频和外接视频
【问题讨论】:
-
这不能在 C++ 中完成。您的平台要求是什么?
-
目前仅适用于 Windows XP。
-
@IInspectable 这毫无意义,整个 Windows API 都可以从 C++ 调用 - 还是说没有函数可以执行 OP 的要求?
-
我已为我的问题添加了更新。可以为每个监视器获取视频适配器的名称。但没有关于视频适配器类型(集成或外部)的信息
-
你为什么不记住用户上次打开窗口的那个窗口并再次打开它呢?这样您就不必担心什么窗口连接到什么。让用户告诉你。
标签: c++ windows winapi multiple-monitors