一个用C#获取硬件信息的类
2008-12-24 22:28
363 查看
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: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 获取机器名
/// </summary>
/// <returns></returns>
public string GetHostName()
{
return System.Net.Dns.GetHostName();
}
/// <summary>
/// 获得主机IP地址
/// </summary>
/// <returns></returns>
public string GetHostIP()
{
return System.Net.Dns.GetHostAddresses(GetHostName())[0].ToString();
}
/// <summary>
/// 获取CPU编号
/// </summary>
/// <returns></returns>
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 "";
}
}
/// <summary>
/// 获取第一块硬盘编号
/// </summary>
/// <returns></returns>
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);
}
}
/// <summary>
/// 获取网卡MAC地址
/// </summary>
/// <returns></returns>
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 "";
}
}
/// <summary>
/// 获取硬盘信息的代码
/// </summary>
/// <param name="drvID"></param>
/// <returns></returns>
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 "";
}
}
/// <summary>
/// 获取当前网卡IP地址
/// </summary>
/// <returns></returns>
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.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: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 获取机器名
/// </summary>
/// <returns></returns>
public string GetHostName()
{
return System.Net.Dns.GetHostName();
}
/// <summary>
/// 获得主机IP地址
/// </summary>
/// <returns></returns>
public string GetHostIP()
{
return System.Net.Dns.GetHostAddresses(GetHostName())[0].ToString();
}
/// <summary>
/// 获取CPU编号
/// </summary>
/// <returns></returns>
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 "";
}
}
/// <summary>
/// 获取第一块硬盘编号
/// </summary>
/// <returns></returns>
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);
}
}
/// <summary>
/// 获取网卡MAC地址
/// </summary>
/// <returns></returns>
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 "";
}
}
/// <summary>
/// 获取硬盘信息的代码
/// </summary>
/// <param name="drvID"></param>
/// <returns></returns>
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 "";
}
}
/// <summary>
/// 获取当前网卡IP地址
/// </summary>
/// <returns></returns>
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#获取硬件信息的类
- c# 获取计算机硬件信息
- C#中通过wmi获取硬件的信息
- C#获取当前主机硬件信息
- C#使用Xamarin开发可移植移动应用终章(11.获取设备信息与常用组件,开源一个可开发模版.)
- 一个获取计算机硬件信息和安装软件清单的脚本
- C#获取硬件信息
- C# 获取 MP3信息结构 的一个小例子(基于v1版的ID3)
- C#获取硬件信息(二)
- C#获取当前主机硬件信息
- c#获取硬件信息
- c# WMI获取机器硬件信息(硬盘,cpu,内存等)
- C#获取当前主机硬件信息
- C# 获取系统硬件信息
- C#获取当前主机硬件信息
- C#获取当前主机硬件信息
- C# 获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
- c#获取硬件信息
- c#获取硬件信息
- C#获取硬件信息(CPU序列号,网卡地址...)