2

我将多台显示器插入机器:其中 2 台插入外部视频适配器,其中 2 台插入内部视频芯片。我需要知道哪些显示器插入了外部视频适配器,如何找到它?

我查看了EnumDisplayDevices,发现DISPLAY_DEVICE结构具有DISPLAY_DEVICE_PRIMARY_DEVICE标志,可以在主屏幕上显示什么视频设备。但这还不足以解决整个任务。

更新:

我试过EnumDisplayDevices了,在它的DISPLAY_DEVICE对象中有一个 field 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. 但是名称可以不同,如何区分集成视频和外部视频

4

1 回答 1

2

没有办法知道什么显卡是内部或外部的,因为这个概念在 Windows 中不存在。您也许可以从名称中推断出它,但这可能会停止使用制造商的下一个图形卡生成/命名方案。

您唯一能做的就是为具有图形卡的用户提供一个列表,让他们指出您希望应用程序运行在哪一个上。

这也涵盖了内部显卡更好/更快/更适合运行软件的情况。

于 2013-09-23T13:38:11.247 回答