C#中擷取邏輯磁碟、網卡MAC地址、CPUID等資訊的代碼
來源:互聯網
上載者:User
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;
}
}
}