您的位置:首页 > 编程语言 > C#

转:C#编程中如何获得硬件的信息

2008-07-09 11:27 381 查看
using System;

using System.Net;

using System.Runtime.InteropServices;

using System.Management; //需要在解决方案中引用System.Management.DLL文件

namespace ConsoleApplication1

{

/// <summary>

/// HardInfoClass 的摘要说明。

/// </summary>

public 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();

}

//获取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 "";

}

}//end method

//获取第一块硬盘编号

public string GetHardDiskID()

{

try

{

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

string strHardDiskID = null;

foreach (ManagementObject mo in searcher.Get())

{

strHardDiskID = mo["SerialNumber"].ToString().Trim();

break;

}

return strHardDiskID;

}

catch

{

return "";

}

}

//获取网卡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 "";

}

}

}

}

using System;

using System.Net;

using System.Runtime.InteropServices;

using System.Management; //需要在解决方案中引用System.Management.DLL文件

namespace ConsoleApplication1

{

/// <summary>

/// HardInfoClass 的摘要说明。

/// </summary>

public 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();

}

//获取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 "";

}

}//end method

//获取第一块硬盘编号

public string GetHardDiskID()

{

try

{

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

string strHardDiskID = null;

foreach (ManagementObject mo in searcher.Get())

{

strHardDiskID = mo["SerialNumber"].ToString().Trim();

break;

}

return strHardDiskID;

}

catch

{

return "";

}

}

//获取网卡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 "";

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: