zoukankan      html  css  js  c++  java
  • .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”。

  • 相关阅读:
    javaweb消息中间件——rabbitmq入门
    virtual box 桥接模式(bridge adapter)下无法获取ip(determine ip failed)的解决方法
    Apache Kylin本地启动
    git操作
    Java学习总结
    Java中同步的几种实现方式
    hibernate exception nested transactions not supported 解决方法
    vue 中解决移动端使用 js sdk 在ios 上一直报invalid signature 的问题解决
    cookie 的使用
    vue 专门为了解决修改微信标题而生的项目
  • 原文地址:https://www.cnblogs.com/nianshi/p/698679.html
Copyright © 2011-2022 走看看