C# 获取CPU序列号、网卡MAC地址、硬盘序列号封装类,用于软件绑定电脑

///   <summary>
///   hardware_mac 的摘要说明。
///   </summary>
class   HardwareInfo
{
///   <summary>
///   取机器名
///   </summary>
///   <returns></returns>
public   string   GethostName()
{
return   System.Net.Dns.GetHostName();
}

///   <summary>
///   获取cpu序列号
///   </summary>
///   <returns></returns>
public   static   string   GetCPUSerialNumber()
{
string   cpuSerialNumber   =   string .Empty;
ManagementClass mc
  =   new   ManagementClass( " Win32_Processor " );
ManagementObjectCollection moc
  =   mc.GetInstances();
foreach   (ManagementObject mo   in   moc)
{
cpuSerialNumber
  =   mo[ " ProcessorId " ].ToString();
break ;
}
mc.Dispose();
moc.Dispose();
return   cpuSerialNumber;
}

///   <summary>
///   获取硬盘序列号
///   </summary>
///   <returns></returns>
public   static   string   GetDiskSerialNumber()
{
ManagementObjectSearcher mos
  =   new   ManagementObjectSearcher();
mos.Query
  =   new   SelectQuery( " Win32_DiskDrive " ,   "" ,   new   string [] {   " PNPDeviceID " ,   " Signature "   });
ManagementObjectCollection myCollection
  =   mos.Get();
ManagementObjectCollection.ManagementObjectEnumerator em
  =   myCollection.GetEnumerator();
em.MoveNext();
ManagementBaseObject moo
  =   em.Current;
string   id   =   moo.Properties[ " signature " ].Value.ToString().Trim();
return   id;
}

///   <summary>
///   获取网卡硬件地址
///   </summary>
///   <returns></returns>
public   static   string   GetMoAddress()
{
string   MoAddress   =   "   " ;
using   (ManagementClass mc   =   new   ManagementClass( " Win32_NetworkAdapterConfiguration " ))
{
ManagementObjectCollection moc2
  =   mc.GetInstances();
foreach   (ManagementObject mo   in   moc2)
{
//if   (( bool )mo[ " IPEnabled " ]   ==   true )
MoAddress
  =   mo[ " MacAddress " ].ToString();
mo.Dispose();
}
}
return   MoAddress.ToString();
}
}

调用示例

///   <summary>
///   应用程序的主入口点。
///   </summary>
[STAThread]
static   void   Main()
{
if   (File.Exists(Application.StartupPath   +   @" \WOWComputerInfo.ini " ))
{
DecryptoMethod decry
  =   new   DecryptoMethod();
string   computerInfo   =   "" ;
using   (StreamReader streamReader   =   new   StreamReader(Application.StartupPath   + @" \WOWComputerInfo.ini " , System.Text.Encoding.Default))
{
try
{
computerInfo
  =   decry.Decrypto(streamReader.ReadToEnd());
}
catch
{
}
}
string   getComputerInfo   =   HardwareInfo.GetCPUSerialNumber()   +   HardwareInfo.GetDiskSerialNumber()   + HardwareInfo.GetMoAddress();
if   (computerInfo   !=   getComputerInfo)
{
MessageBox.Show(
" 程序不能在本机使用! " ,   " 提示 " , MessageBoxButtons.OK, MessageBoxIcon.Error);
return ;
}
}
else
{
MessageBox.Show(
" 配置文件丢失或未配置,程序不能运行! " ,   " 提示 " , MessageBoxButtons.OK, MessageBoxIcon.Error);
return ;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(
false );
Application.Run(
new   frmMain());
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个使用 .NET 语言(C#)编写的获取计算机硬件信息的: ```csharp using System; using System.Management; public class HardwareInfo { public string GetCpuId() { string cpuId = ""; ManagementClass mc = new ManagementClass("win32_processor"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { cpuId = mo.Properties["processorID"].Value.ToString(); break; } return cpuId; } public string GetMotherboardId() { string motherboardId = ""; ManagementClass mc = new ManagementClass("Win32_BaseBoard"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { motherboardId = mo.Properties["SerialNumber"].Value.ToString(); break; } return motherboardId; } public string GetHardDiskId() { string hardDiskId = ""; ManagementClass mc = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { hardDiskId = (string)mo["SerialNumber"]; break; } return hardDiskId; } public string GetMACAddress() { string macAddress = ""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"] == true) { macAddress = mo["MacAddress"].ToString(); break; } } return macAddress; } } ``` 使用方法: ```csharp HardwareInfo hwInfo = new HardwareInfo(); string cpuId = hwInfo.GetCpuId(); string motherboardId = hwInfo.GetMotherboardId(); string hardDiskId = hwInfo.GetHardDiskId(); string macAddress = hwInfo.GetMACAddress(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值