如何在C#中检查系统是否有AMD或NVIDIA?

How to check if the system has AMD or NVIDIA in C#?

我正在尝试使用 C# 制作以太坊挖矿客户端,我需要检查系统是否有 AMD 或 NVIDIA。这是因为程序需要知道它是否应该通过 CUDA 或 OpenCL 挖掘以太坊。

您需要使用 System.Management 命名空间(您可以在 references/Assemblies 下找到)

添加命名空间后,您需要导航 ManagementObject 的所有属性并导航 属性data 的所有属性,直到名称 属性.

的创建描述

我为控制台应用程序编写了这个解决方案。您可以调整您的解决方案。

试试这个:

 using System;
 using System.Management;

 namespace ConsoleApp1
 {
 class Program
 {
    static void Main(string[] args)
    {
        ManagementObjectSearcher searcher = new 
 ManagementObjectSearcher("SELECT * FROM Win32_DisplayConfiguration");

        string gc = "";
        foreach (ManagementObject obj in searcher.Get())
        {
            foreach (PropertyData prop in obj.Properties)
            {
                if (prop.Name == "Description")
                {
                    gc = prop.Value.ToString().ToUpper();

                    if (gc.Contains("INTEL") == true)
                    {
                      Console.WriteLine("Your Graphic Card is Intel");
                    }
                    else if (gc.Contains("AMD") == true)
                    {
                        Console.WriteLine("Your Graphic Card is AMD");
                    }
                    else if (gc.Contains("NVIDIA") == true)
                    {
                        Console.WriteLine("Your Graphic Card is NVIDIA");
                    }
                    else
                    {
                        Console.WriteLine("Your Graphic Card cannot recognized.");

                    }
                    Console.ReadLine();
                }
            }
        }
    }
}
}