在Mac上,我可以使用以下方法来打印出用于特定显示器适配器:如何在Windows中获得用于特定显示器的显示适配器?
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);
}
我可以得到监控的设备名称本身,而不是它们连接到适配器!
出于好奇(因为您刚刚接受了我的回答):您选择了哪条路线(如果有的话)? – 2011-10-18 13:12:46
我没有得到任何进一步的。 Win32_VideoController看起来很有前途,但这是一个小问题,所以我暂时离开了它。 – fredley 2011-10-18 13:19:42