我将多台显示器插入机器:其中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
。
但名称可能不同,如何分离集成视频和外部视频
答案 0 :(得分:2)
没有办法知道什么图形卡是内部或外部的,因为这个概念在Windows中不存在。您可以从名称中推断它,但这可能会停止使用来自制造商的下一个图形卡生成/命名方案。
你唯一能做的就是为有图形卡的用户提供一个列表,让他们指出你想要运行哪一个应用程序。
这也包括内部显卡更好/更快/更适合运行软件的情况。