转: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 ""; } } } }
相关文章推荐
- 如何用C#获得文件信息以及扩展信息
- 如何获得ios设备中的硬件信息(下)
- 如何用C#获得文件信息以及扩展信息
- [CF.Skills]C#中如何通过RIL获得基站信息
- WCF热门问题编程示例(1):WCF服务如何获得客户端地址信息
- ManagementClass类解析和C#如何获取硬件的相关信息
- 如何用C#获得文件信息以及扩展信息
- 如何用C#获得文件信息以及扩展信息
- WCF热门问题编程示例(1):WCF服务如何获得客户端IP地址信息
- ManagementClass类解析和C#如何获取硬件的相关信息
- 如何用C#获得文件信息以及扩展信息
- C#编程获取客户端计算机硬件及系统信息功能示例
- 如何通过C#获取硬件信息。
- [愚翁专栏]如何用C#获得文件信息以及扩展信息
- c# 如何获得你电脑安装的所有程序信息
- C#编程:如何获得当前进程运行路径
- WCF热门问题编程示例(1):WCF服务如何获得客户端IP地址信息
- [CF.Skills]C#中如何通过RIL获得基站信息
- WCF热门问题编程示例(1):WCF服务如何获得客户端IP地址信息
- 如何用C#获得文件信息以及扩展信息