c# - 无法在 C# 中获取 CPU 序列号

标签 c# system

我正在尝试获取 CPU 序列号,但我做不到。我可以拿到主板和硬盘,但不能拿到 cpu。

下面是我的代码。我做错了什么?

public static void GetClientComputerInfo()
    {
        HDDSerial = "0";
        BoardSerial = "0";
        CPUSerial = "0";

        try
        {
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_DiskDrive");

            foreach (ManagementObject share in searcher.Get())
            {
                foreach (PropertyData PC in share.Properties)
                {
                    if (PC.Name == "SerialNumber")
                    {
                        HDDSerial = PC.Value.ToString();
                    }

                    if (PC.Name == "SerialNumber")
                    {
                        BoardSerial = PC.Value.ToString();
                    }

                    if (PC.Name == "ProcessorID")
                    {
                        CPUSerial = PC.Value.ToString();
                    }
                }
            }
        }
        catch
        {

        }
    }

最佳答案

试试这个

 string cpuInfo = string.Empty;
    ManagementClass mc = new ManagementClass("win32_processor");
    ManagementObjectCollection moc = mc.GetInstances();

    foreach (ManagementObject mo in moc)
    {
         cpuInfo = mo.Properties["processorID"].Value.ToString();
         break;
    }

here 中提取的代码

关于c# - 无法在 C# 中获取 CPU 序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25325537/

相关文章:

c++ - 如何使用 pstreams 获得完整的流输出?

uml - 您是否先设计/草图/绘制开发解决方案,然后再进行开发?如果有怎么办?

c# - 请求的身份验证范围不足。 【403】c#

c# - ASP.NET:如何将 CSS 类应用于在 C# 代码隐藏中生成的表

c# - 按下输入时从文本框中触发命令?

date - grails System.currentTimeMillis()与System-Date不同

c# - 我无法摆脱System.Range.get_Start错误

r - 为什么我无法调用在我的终端中明显有效的 R 系统函数?

C# - 如何在包含数组的结构中编码(marshal)非托管结构

c# - 如何在 Visual Studio 2017 中保持输出窗口始终打开