获取显示器所连接的video适配器

我有多台显示器连接到机器上,其中2台连接到外部video适配器,其中2台连接到内部video芯片。 我需要知道什么监视器插入到外部video适配器,如何find它?

我已经看着EnumDisplayDevices ,我看到DISPLAY_DEVICE结构有DISPLAY_DEVICE_PRIMARY_DEVICE标志,可以告诉我什么video设备是主屏幕。 但是解决整个任务是不够的。

更新:

我试过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 

它由video适配器的名称组成,例如Intel(R) HD Graphics 4000 。 但名称可以不同,如何分离整合video和外部video

没有办法知道什么显卡是内部或外部的,因为这个概念不存在于Windows中。 你也许可以从名字中推断出来,但是这可能会停止与来自制造商的下一代显卡生成/命名方案一起工作。

你唯一能做的就是给用户提供一张图形卡的列表,让他们指出你希望运行哪一个应用程序。

这还包括内部显卡更好/更快/更适合运行软件的情况。