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

在.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()

{

   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 ;

}

4.获取bios和mac地址,这个有点复杂,需要用到NETAPI32.DLL

 

posted on 2006-08-29 15:39  shf  阅读(448)  评论(0编辑  收藏  举报