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; } }}