我正在尝试使用C#制作以太坊挖矿客户端,我需要检查系统是否有AMD或NVIDIA。这是因为程序需要知道它是否应该通过 CUDA 或 OpenCL 挖掘以太坊。
您需要使用 System.Management Namespace(您可以在 references/Assemblies 下找到(
添加命名空间后,您需要导航 ManagementObject 的所有属性并导航属性数据的所有属性,直到在名称属性上建立描述。
我为控制台应用程序编写了此解决方案。您可以调整您的解决方案。
试试这个:
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();
}
}
}
}
}
}