c# 获取电脑硬件信息通用查询类[测试通过]

C#获取电脑硬件信息通用类[Computer]代码展示和分析,简介如下:

1.项目中添加System.Management引用。

2.添加类Computer,把下面代码全选,复制,粘贴。

3.使用方法new Computer().GetComputerName()。

using System;
using System.Management;  // 添加System.Management引用

public class Computer
{
   
public string CpuID;
   
public string MacAddress;
   
public string DiskID;
   
public string IpAddress;
   
public string LoginUserName;
   
public string ComputerName;
   
public string SystemType;
   
public string TotalPhysicalMemory; //单位:M  
    private static Computer _instance;
   
public static Computer Instance()
    {
       
if (_instance == null)
            _instance
= new Computer();
       
return _instance;
    }
   
/// <summary>
   
/// 构造函数
   
/// </summary>
    public Computer()
    {
        CpuID
= GetCpuID();
        MacAddress
= GetMacAddress();
        DiskID
= GetDiskID();
        IpAddress
= GetIPAddress();
        LoginUserName
= GetUserName();
        SystemType
= GetSystemType();
        TotalPhysicalMemory
= GetTotalPhysicalMemory();
        ComputerName
= GetComputerName();
    }
   
/// <summary>
   
/// 获取cpu序列号
   
/// </summary>
   
/// <returns></returns>
    public string GetCpuID()
    {
       
try
        {
           
//获取CPU序列号代码  
            string cpuInfo = "";//cpu序列号  
            ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc
= mc.GetInstances();
           
foreach (ManagementObject mo in moc)
            {
                cpuInfo
= mo.Properties["ProcessorId"].Value.ToString();
            }
            moc
= null;
            mc
= null;
           
return cpuInfo;
        }
       
catch
        {
           
return "unknow";
        }
    }
   
/// <summary>
   
/// 获取网卡硬件地址 
   
/// </summary>
   
/// <returns></returns>
    public string GetMacAddress()
    {
       
try
        {
           
//获取网卡硬件地址  
            string mac = "";
            ManagementClass mc
= new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc
= mc.GetInstances();
           
foreach (ManagementObject mo in moc)
            {
               
if ((bool)mo["IPEnabled"] == true)
                {
                    mac
= mo["MacAddress"].ToString();
                   
break;
                }
            }
            moc
= null;
            mc
= null;
           
return mac;
        }
       
catch
        {
           
return "unknow";
        }
    }
   
/// <summary>
   
/// 获取IP地址
   
/// </summary>
   
/// <returns></returns>
    public string GetIPAddress()
    {
       
try
        {
           
//获取IP地址  
            string st = "";
            ManagementClass mc
= new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc
= mc.GetInstances();
           
foreach (ManagementObject mo in moc)
            {
               
if ((bool)mo["IPEnabled"] == true)
                {
                   
//st=mo["IpAddress"].ToString();  
                    System.Array ar;
                    ar
= (System.Array)(mo.Properties["IpAddress"].Value);
                    st
= ar.GetValue(0).ToString();
                   
break;
                }
            }
            moc
= null;
            mc
= null;
           
return st;
        }
       
catch
        {
           
return "unknow";
        }
    }
   
/// <summary>
   
/// 获取硬盘ID
   
/// </summary>
   
/// <returns></returns>
    public string GetDiskID()
    {
       
try
        {
           
//获取硬盘ID  
            String HDid = "";
            ManagementClass mc
= new ManagementClass("Win32_DiskDrive");
            ManagementObjectCollection moc
= mc.GetInstances();
           
foreach (ManagementObject mo in moc)
            {
                HDid
= (string)mo.Properties["Model"].Value;
            }
            moc
= null;
            mc
= null;
           
return HDid;
        }
       
catch
        {
           
return "unknow";
        }
    }

   
/// <summary>  
   
/// 操作系统的登录用户名  
   
/// </summary>  
   
/// <returns></returns>  
    public string GetUserName()
    {
       
try
        {
           
string st = "";
            ManagementClass mc
= new ManagementClass("Win32_ComputerSystem");
            ManagementObjectCollection moc
= mc.GetInstances();
           
foreach (ManagementObject mo in moc)
            {
                st
= mo["UserName"].ToString();
            }
            moc
= null;
            mc
= null;
           
return st;
        }
       
catch
        {
           
return "unknow";
        }
    }


   
/// <summary>  
   
/// PC类型  
   
/// </summary>  
   
/// <returns></returns>  
    public string GetSystemType()
    {
       
try
        {
           
string st = "";
            ManagementClass mc
= new ManagementClass("Win32_ComputerSystem");
            ManagementObjectCollection moc
= mc.GetInstances();
           
foreach (ManagementObject mo in moc)
            {
                st
= mo["SystemType"].ToString();
            }
            moc
= null;
            mc
= null;
           
return st;
        }
       
catch
        {
           
return "unknow";
        }
    }

   
/// <summary>  
   
/// 物理内存  
   
/// </summary>  
   
/// <returns></returns>  
    public string GetTotalPhysicalMemory()
    {
       
try
        {
           
string st = "";
            ManagementClass mc
= new ManagementClass("Win32_ComputerSystem");
            ManagementObjectCollection moc
= mc.GetInstances();
           
foreach (ManagementObject mo in moc)
            {
                st
= mo["TotalPhysicalMemory"].ToString();
            }
            moc
= null;
            mc
= null;
           
return st;
        }
       
catch
        {
           
return "unknow";
        }
    }
   
/// <summary>  
   
/// 电脑名称
   
/// </summary>  
   
/// <returns></returns>  
    public string GetComputerName()
    {
       
try
        {
           
return System.Environment.GetEnvironmentVariable("ComputerName");
        }
       
catch
        {
           
return "unknow";
        }
    }
}

你可能感兴趣的:(String,C#,测试,null,Class)