04
2012
04

一个用C#获取硬件信息的类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Management;

namespace GetPCInfo
{
class HardInfoClass
{
[DllImport("kernel32.dll")]
private static extern int GetVolumeInformation(

string lpRootPathName,

string lpVolumeNameBuffer,

int nVolumeNameSize,

ref int lpVolumeSerialNumber,

int lpMaximumComponentLength,

int lpFileSystemFlags,

string lpFileSystemNameBuffer,

int nFileSystemNameSize

);

public HardInfoClass()
{
//

// TODO: 在此处添加构造函数逻辑

//

}

///
/// 获取机器名
///

///
public string GetHostName()
{
return System.Net.Dns.GetHostName();
}

///
/// 获得主机IP地址
///

///
public string GetHostIP()
{
return System.Net.Dns.GetHostAddresses(GetHostName())[0].ToString();
}

///
/// 获取CPU编号
///

///
public string GetCpuID()
{
try
{
ManagementClass mc = new ManagementClass("Win32_Processor");

ManagementObjectCollection moc = mc.GetInstances();

string strCpuID = null;

foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
return strCpuID;
}
catch
{

return "";

}

}


///
/// 获取第一块硬盘编号
///

///
public string GetHardDiskID()
{

try
{

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");

string strHardDiskID = null;

foreach (ManagementObject mo in searcher.Get())
{
if (mo != null)
{
strHardDiskID = mo["SerialNumber"].ToString().Trim();

break;
}

}

return strHardDiskID;

}

catch(Exception ex)
{
return "null";
//throw new Exception(ex.Message);
}

}

///
/// 获取网卡MAC地址
///

///
public string GetNetCardMAC()
{

try
{

string stringMAC = "";

ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection MOC = MC.GetInstances();

foreach (ManagementObject MO in MOC)
{

if ((bool)MO["IPEnabled"] == true)
{
stringMAC += MO["MACAddress"].ToString();
}
}
return stringMAC;
}
catch
{
return "";
}

}


///
/// 获取硬盘信息的代码
///

///
///
public string GetVolOf(string drvID)
{

try
{

const int MAX_FILENAME_LEN = 256;

int retVal = 0;

int a = 0;

int b = 0;

string str1 = null;

string str2 = null;



int i = GetVolumeInformation(

drvID + @":\",

str1,

MAX_FILENAME_LEN,

ref retVal,

a,

b,

str2,

MAX_FILENAME_LEN

);

return retVal.ToString("x");

}

catch
{

return "";

}

}

///
/// 获取当前网卡IP地址
///

///
public string GetNetCardIP()
{

try
{

string stringIP = "";

ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection MOC = MC.GetInstances();



foreach (ManagementObject MO in MOC)
{

if ((bool)MO["IPEnabled"] == true)
{

string[] IPAddresses = (string[])MO["IPAddress"];

if (IPAddresses.Length > 0)
{
stringIP = IPAddresses[0].ToString();
}
}
}
return stringIP;
}
catch
{

return "";

}

}
}
}
« 上一篇下一篇 »

相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。