C#中获取逻辑磁盘、网卡MAC地址、CPUID等信息的代码

using System;
using System.Collections.Generic;
using System.Text;

using System.Diagnostics;
using System.Management;

namespace MachineInfo
{
    
class GetInfo
    
{
        
public static string GetVolumeSerial(string strDriveLetter)
        
{
            
if (strDriveLetter == "" || strDriveLetter == null)
            
{
                strDriveLetter 
= "C:";
            }

            ManagementObject disk 
= new ManagementObject("win32_logicaldisk.deviceid=\"" + strDriveLetter + "\"");
            disk.Get();
            Debug.WriteLine(
"FreeSpace: " + disk["FreeSpace"].ToString());
            
return disk["VolumeSerialNumber"].ToString();
        }


        
public static string GetMACAddress()
        
{
            ManagementClass mc 
= new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc 
= mc.GetInstances();
            
string MACAddress = String.Empty;
            
foreach (ManagementObject mo in moc)
            
{
                
if (mo["MacAddress"!= null)
                
{
                    Debug.WriteLine(
"Network Adapter Description: " + mo["Description"].ToString() + "-" + mo["MacAddress"].ToString());
                }

                
if (MACAddress == String.Empty)
                
{
                    
if ((bool)mo["IPEnabled"== true)
                    
{
                        MACAddress 
= mo["MacAddress"].ToString();
                    }

                }

                mo.Dispose();
            }

            MACAddress 
= MACAddress.Replace(":""");
            
return MACAddress;
        }



        
public static string GetCPUId()
        
{
            
string cpuInfo = String.Empty;
            
string temp = String.Empty;
            ManagementClass mc 
= new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc 
= mc.GetInstances();
            
foreach (ManagementObject mo in moc)
            
{
                Debug.WriteLine(
"Processor Caption: " + mo.Properties["Caption"].Value.ToString());
                Debug.WriteLine(
"Processor MaxClockSpeed: " + mo.Properties["MaxClockSpeed"].Value.ToString());
                
if (cpuInfo == String.Empty)
                
{
                    cpuInfo 
= mo.Properties["ProcessorId"].Value.ToString();
                }

            }

            
return cpuInfo;
        }


    }

}

原文地址:https://www.cnblogs.com/ahuang1118/p/831867.html