gpt4 book ai didi

c++ - 如何获得用于 Windows 中特定显示器的显示适配器?

转载 作者:行者123 更新时间:2023-11-30 03:05:18 53 4
gpt4 key购买 nike

在 Mac 上,我可以使用以下命令打印出用于特定显示器的适配器:

io_registry_entry_t dspPort = CGDisplayIOServicePort(displays[i]);
CFDataRef model_;
model_ = (CFDataRef)IORegistryEntrySearchCFProperty(dspPort,kIOServicePlane,CFSTR("model"),
kCFAllocatorDefault,
kIORegistryIterateRecursively | kIORegistryIterateParents);

if (model_) {
newLine();
String model((const char*)CFDataGetBytePtr(model_), CFDataGetLength(model_));
log.printf("Adapter: %s", model.buf);
CFRelease(model_);
}

示例输出 - 适配器:AMD Radeon HD 6750M

displays[i] 使用 CGGetActiveDisplayList(nDisplays, displays, &nDisplays);

有什么办法可以在Windows上做同样的操作吗?我正在使用 EnumDisplayMonitors 循环浏览所有显示。

我可以使用 EnumDisplayDevices 获取适配器列表,但如何查看哪个显示器连接到哪个适配器?

编辑

使用:

for (int i=0; EnumDisplayDevicesA(monitorInfo.szDevice, i, &dev, 0); i++) {
newLine();
log.printf("Display Device: %s",(char*)dev.DeviceString);
}

我可以获取显示器本身的设备名称,但不能获取它们所连接的适配器!

最佳答案

我可以想到三种方法:

  1. EnumDisplayDevices文档提到 dwFlags 参数可用于获取可与 SetupAPI functions 一起使用的设备 ID .该 API 为 get device information 提供了一系列功能.因此,也许您可​​以从 EnumDisplayDevices 获取设备 ID,将其粘贴到某些 SetupAPI 函数中以获取监视器设备结构,并从那里获取显示适配器设备 ID。

  2. 您或许可以使用 Win32_VideoController通过 WMI 类获取显示适配器信息。

  3. 我可以想象一些 DirectX API 可用于获取有关已安装图形硬件的信息。

关于c++ - 如何获得用于 Windows 中特定显示器的显示适配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7793971/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com