• <td id="x1vx7"></td>
    <del id="x1vx7"><sub id="x1vx7"><em id="x1vx7"></em></sub></del>

      DIY装机联盟-电脑故障排除|装机指南|硬件|配置|电脑知识

      DIY装机联盟-电脑故障排除|装机指南|硬件|配置|电脑知识

      http://www.hardmoneymadeez.com

      菜单导航

      用C#获取硬盘序列号,CPU序列号,网卡MAC地址

      作者:?庄吉 发布时间:?2019年10月11日 12:45:23

      这个问题首先得考虑的就是你的硬盘是不是SCSI硬盘  
        如果是,那么根本不存在"物理序列号",只可能取得卷标的序列号  
         
        如果是卷标序列号,要注意的是每次格式化硬盘的时候这个序列号都会变  
        代码可以参考:  
        ?Id=25196  
         
        如果是物理序列号:  
        String   HDid;  
        ManagementClass   cimobject   =   new   ManagementClass("Win32_DiskDrive");  
        ManagementObjectCollection   moc   =   cimobject.GetInstances();  
        foreach(ManagementObject   mo   in   moc)  
        {  
        HDid   =   (string)mo.Properties["Model"].Value;  
        MessageBox.Show(HDid   );    
        }

      如果是取得逻辑序列号(Format产生的那个),用WMI就可以,在引用中,添加system.mangement以后。    
        using   System.Management;  
        .....  
        ManagementObject     m_objDisk     =     new     ManagementObject(     "win32_logicaldisk.deviceid=\"c\"");          
        string     strSN     =     (string)m_objDisk.GetPropertyValue(     "VolumeSerialNumber     ");          
         
        如果要取得物理分区号,看这个帖子:  
        关于硬盘序列号,高手请留步啊.   (之一)  
        ?id=1143107  

      683E0480(第一种方案取得)

      ST3160815AS (第二个方案取得的)

      5239355835565745202020202020202020202020(第三种方案取得)

      private string[] GetMoc()
              
      {
                  
      string[] str = new string[3];
                  ManagementClass mcCpu 
      = new ManagementClass("win32_Processor");
                  ManagementObjectCollection mocCpu 
      = mcCpu.GetInstances();
                  
      foreach(ManagementObject m in mocCpu)
                  
      {
                      str[
      0= m["ProcessorId"].ToString();
                  }


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

                  }


                  ManagementClass mcMAC = new ManagementClass("Win32_NetworkAdapterConfiguration");
                  ManagementObjectCollection mocMAC 
      = mcMAC.GetInstances();
                  
      foreach(ManagementObject m in mocMAC)
                  
      {
                      
      if((bool)m["IPEnabled"])
                      
      {
                          str[
      2= m["MacAddress"].ToString();
                          
      break;
                      }

                  }


                  return str;
              }

      以上为取硬盘逻辑分区序列号,重新格式化会改变

      以下为硬盘物理序列号,需管理员权限,wmi

       Code

      本文地址:http://www.hardmoneymadeez.com/hyzx/220.html

      请遵守互联网相关规定,不要发布广告和违法内容

      自慰小仙女粉嫩小泬喷白浆图片
    1. <td id="x1vx7"></td>
      <del id="x1vx7"><sub id="x1vx7"><em id="x1vx7"></em></sub></del>