我的目标是使用 C# 检测多 GPU 系统(例如集成Intel HD Graphics + 离散AMD Radeon卡)上的离散 GPU
我通常使用该代码:
String gpuName = String.Empty;
ManagementObjectCollection objectCollection =
new ManagementObjectSearcher("SELECT Name FROM Win32_VideoController").Get();
foreach (ManagementObject managementObject in objectCollection)
{
foreach (PropertyData propertyData in managementObject.Properties)
{
if ((gpuName == String.Empty) || (propertyData.Value.ToString().ToLower().IndexOf("intel") == -1))
{
gpuName = propertyData.Value.ToString();
break;
}
}
}
对于我的示例来说,它就像一个魅力,如上所述。
但它不适合AMD、VIA等(我不完全了解所有制造商)集成卡。
那么有没有通用的方法来切断所有集成的 GPU 呢?