.net中如何获取机器硬件信息(防软件复制版)

最近帮人做个关于软件注册的东东,对方一定要防止大量复制和防止注册码通用,所以就想到用机器的硬件信息进行注册码的生成,所以就牵涉到在获取机器硬件信息。。。

在.net环境下(用VC#描述)获取机器的硬件信息,要用到一个类库(System.Management.dll),在解决方案资源管理器中添加System.Management 即可

我们可以将该程序编译成.dll文件,便于以后调用;

在程序代码中进行引用 using System.Management;

具体 代码为:

1.获取机器名:

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

2.获取CPU编号

 public string GetCpuId()

{

 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;

}

3.获取主硬盘编号

public string GetMainHardDiskId()

{
 string str="";
 ManagementClass mcHD=new ManagementClass("win32_logicaldisk");
 ManagementObjectCollection mocHD=mcHD.GetInstances();
 foreach(ManagementObject m in mocHD)
 {
  if(m["DeviceID"].ToString()=="C:")
  { 
   str=m["VolumeSerialNumber"].ToString();
   break;
  }
 }
 return str;
}

4.获取bios和mac地址,这个有点复杂,需要用到NETAPI32.DLL
另外补充:
5.获取网卡的mac地址
using   System.Management;   
Public string GetNetWorkAdapterID()
{
 string str="";
     ManagementClass   mc   =   new   ManagementClass("Win32_NetworkAdapterConfiguration");  
    ManagementObjectCollection   moc   =   mc.GetInstances();    
   foreach(ManagementObject   mo   in   moc)    
   {    
    if((bool)mo["IPEnabled"]   ==   true)  
                {  
          //Console.WriteLine("MAC   address\t{0}",   mo["MacAddress"].ToString());
   str=mo["MacAddress"].ToString();    
                          mo.Dispose();    
    }    
   }
 return str;

  ---------------------------------------------  
  如果系统提示找不到名字空间Management,  
  1.   在Solution   Explorer中鼠标右键单击References,选择Add   Reference…    
  2.   此时会弹出Add   Reference对话框,选中.NET选项卡。  
  3.   选中System.Management,点select  
  4.   点击”OK”。

转载于:https://www.cnblogs.com/nianshi/archive/2007/04/03/698679.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值