• C# 获取计算机信息


      1 //C#获取当前计算机的系统信息
      2 
      3 //系统标识符和版本号 
      4    string strSystem = Environment.OSVersion.ToString(); 
      5    //获取映射到进程上下文的物理内存量 
      6    string strRem=Environment.WorkingSet.ToString(); 
      7    //获取系统启动后经过的毫秒数 
      8    int iTC=Environment.TickCount/60000; 
      9    //系统目录的完全限定路径 
     10    string strSD=Environment.SystemDirectory; 
     11    //获取此本地计算机的 NetBIOS 名称 
     12    string strMN=Environment.MachineName; 
     13    //获取与当前用户关联的网络域名 
     14    string strUDN=Environment.UserDomainName; 
     15 
     16 
     17 ------------------------------------------------------------------------------------- 
     18    //输出所有驱动器号 
     19    string[] drv=System.IO.Directory.GetLogicalDrives(); 
     20 //还有文件信息,最后修改时间等等 
     21 
     22 //获取某一目录下的所有文件信息 
     23    //当前目录下的所有文件夹 
     24    DirectoryInfo di=new DirectoryInfo(strPath); 
     25    DirectoryInfo[] wjj=di.GetDirectories();
     26 
     27 //此代码从网络收集整理
     28 //经测试通过
     29 //需引用System.Management 
     30 using System;
     31 using System.Management;
     32 
     33 namespace MyCustomClassLib
     34 {
     35  /// <summary>
     36  /// 硬件信息类
     37  /// </summary>
     38  public class HardwareInfo
     39  {
     40   public HardwareInfo()
     41   {
     42    //
     43    // TODO: 在此处添加构造函数逻辑
     44    //
     45   }
     46 
     47   #region 硬件属性
     48   /// <summary>
     49   /// 机器名
     50   /// </summary>
     51   public string HostName
     52   {
     53    get{return System.NET.Dns.GetHostName();}   
     54   }
     55 
     56   /// <summary>
     57   /// CPU编号
     58   /// </summary>
     59   public string CPUID
     60   {
     61    get{return GetCpuID();}
     62   }
     63 
     64   /// <summary>
     65   /// 硬盘编号
     66   /// </summary>
     67   public string HardDiskID
     68   {
     69    get{return GetHardDiskID();}
     70   }
     71 
     72   /// <summary>
     73   /// 网卡MAC
     74   /// </summary>
     75   public string NetMac
     76   {
     77    get{return GetMac();}
     78   }
     79   
     80   #endregion
     81 
     82   #region 获取硬件信息的方法
     83   /// <summary>
     84   /// 获得CPU编号
     85   /// </summary>
     86   /// <returns></returns>
     87   private string GetCpuID()
     88   {
     89    string result="";
     90    try
     91    {
     92     ManagementClass mc = new ManagementClass("Win32_Processor");
     93     ManagementObjectCollection moc = mc.GetInstances();      
     94     
     95     foreach( ManagementObject mo in moc ) 
     96     {
     97      result=mo.Properties["ProcessorId"].Value.ToString();     
     98     }    
     99    }
    100    catch
    101    {
    102     return "获取CPUID失败";
    103    }
    104    return result;
    105   }
    106 
    107   /// <summary>
    108   /// 获得硬盘编号
    109   /// </summary>
    110   /// <returns></returns>
    111   private string GetHardDiskID()
    112   {
    113    string result="";
    114    try
    115    {
    116     ManagementClass mcHD=new ManagementClass("win32_logicaldisk");
    117     ManagementObjectCollection mocHD=mcHD.GetInstances();
    118     foreach(ManagementObject m in mocHD)
    119     {
    120      if(m["DeviceID"].ToString()=="C:")
    121      {
    122       result=m["VolumeSerialNumber"].ToString().Trim();      
    123      }
    124     }
    125    }
    126    catch
    127    {
    128     return "获取硬盘ID失败";
    129    }
    130    return result;
    131   }
    132 
    133   /// <summary>
    134   /// 获得网卡MAC
    135   /// </summary>
    136   /// <returns></returns>
    137   private string GetMac()
    138   {
    139    string result="";
    140    try
    141    {
    142     ManagementClass mcMAC=new ManagementClass("Win32_NetworkAdapterConfiguration");
    143     ManagementObjectCollection mocMAC=mcMAC.GetInstances();
    144     foreach(ManagementObject m in mocMAC)
    145     {
    146      if((bool)m["IPEnabled"])
    147      {
    148       result=m["MacAddress"].ToString();     
    149      }
    150     }
    151    }
    152    catch
    153    {
    154     return "获取MAC失败";
    155    } 
    156    return result;
    157   } 
    158 
    159   #endregion
    160  }
    161 } 
    162 
    163  
    164 
    165  
    166 
    167  
    168 
    169 //获取CPU编号:
    170 view plaincopy to clipboardprint?
    171 ManagementClass mc = new ManagementClass("Win32_Processor"); 
    172 ManagementObjectCollection moc = mc.GetInstances(); 
    173 string strID = null ; 
    174 foreach( ManagementObject mo in moc ) 
    175 { 
    176 strID = mo.Properties["ProcessorId"].Value.ToString(); 
    177 break; 
    178 } 
    179 textBox1.Text +=  "CPU ID:" + strID; 
    180 ManagementClass mc = new ManagementClass("Win32_Processor");
    181 ManagementObjectCollection moc = mc.GetInstances();
    182 string strID = null ; 
    183 foreach( ManagementObject mo in moc ) 
    184 { 
    185 strID = mo.Properties["ProcessorId"].Value.ToString();
    186 break;
    187 } 
    188 textBox1.Text +=  "CPU ID:" + strID;
    189 
    190 //电脑1:CPU ID:BFEBFBFF00000F27
    191 
    192 //电脑2:CPU ID:BFEBFBFF00000F27
    193 
    194 //电脑3:CPU ID:BFEBFBFF00000F29
    195 
    196 //电脑4:CPU ID:BFEBFBFF00000F29
    197 
    198 //获取主板编号:
    199 view plaincopy to clipboardprint?
    200 ManagementClass mc = new ManagementClass("Win32_BaseBoard"); 
    201 ManagementObjectCollection moc = mc.GetInstances(); 
    202 string strID = null ; 
    203 foreach( ManagementObject mo in moc ) 
    204 { 
    205 strID = mo.Properties["SerialNumber"].Value.ToString(); 
    206 break; 
    207 } 
    208 textBox1.Text +=  "主板 ID:" + strID; 
    209 ManagementClass mc = new ManagementClass("Win32_BaseBoard");
    210 ManagementObjectCollection moc = mc.GetInstances();
    211 string strID = null ; 
    212 foreach( ManagementObject mo in moc ) 
    213 { 
    214 strID = mo.Properties["SerialNumber"].Value.ToString();
    215 break;
    216 } 
    217 textBox1.Text +=  "主板 ID:" + strID;
    218 
    219 //电脑2:主板 ID:CN24401483
    220 
    221 //电脑3:主板 ID:AZF241001101
    222 
    223 //获取硬盘编号:
    224 view plaincopy to clipboardprint?
    225 ManagementClass mc = new ManagementClass("Win32_PhysicalMedia"); 
    226 //网上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive获得的硬盘信息中并不包含SerialNumber属性。 
    227 ManagementObjectCollection moc = mc.GetInstances(); 
    228 string strID = null ; 
    229 foreach( ManagementObject mo in moc ) 
    230 { 
    231 strID = mo.Properties["SerialNumber"].Value.ToString(); 
    232 break; 
    233 } 
    234 textBox1.Text +=  "硬盘 ID:" + strID; 
    235 ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
    236 //网上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive获得的硬盘信息中并不包含SerialNumber属性。
    237 ManagementObjectCollection moc = mc.GetInstances();
    238 string strID = null ; 
    239 foreach( ManagementObject mo in moc ) 
    240 { 
    241 strID = mo.Properties["SerialNumber"].Value.ToString();
    242 break;
    243 } 
    244 textBox1.Text +=  "硬盘 ID:" + strID;
    245 
    246 //电脑1:硬盘 ID:4833395344463658202020202020202020202020
    247 
    248  //电脑2:硬盘 ID:WD-WMAJD1092385249 
    250 //电脑3:硬盘 ID:4a353756354d5939202020202020202020202020
    251 
    252 //电脑4:硬盘 ID:0637J2FW508014
    253 
    254 
    255 //获取BIOS编号:
    256 view plaincopy to clipboardprint?
    257 ManagementClass mc = new ManagementClass("Win32_BIOS"); 
    258 ManagementObjectCollection moc = mc.GetInstances(); 
    259 string strID = null ; 
    260 foreach( ManagementObject mo in moc ) 
    261 { 
    262 strID = mo.Properties["SerialNumber"].Value.ToString(); 
    263 break; 
    264 } 
    265 textBox1.Text +=  "BIOS ID:" + strID; 
    266 ManagementClass mc = new ManagementClass("Win32_BIOS");
    267 ManagementObjectCollection moc = mc.GetInstances();
    268 string strID = null ; 
    269 foreach( ManagementObject mo in moc ) 
    270 { 
    271 strID = mo.Properties["SerialNumber"].Value.ToString();
    272 break;
    273 } 
    274 textBox1.Text +=  "BIOS ID:" + strID;
    275 
    276 //电脑2:BIOS ID:CN24401483
    277 
    278 //由以上各步看出,通过Win32_Processor获取CPUID不正确,或者说Win32_Processor字段就不包含CPU编号信息。
    279 
    280 //通过Win32_BaseBoard获取主板信息,但不是所有的主板都有编号,或者说不是能获取所有系统主板的编号。
    281 
    282 //通过Win32_PhysicalMedia获取硬盘编号应该没有问题。但网上说可以通过Win32_DiskDrive获取,其实所得信息根本不包含SerialNumber。
    283 
    284 //通过Win32_BIOS获取BIOS信息,基本和获取主板信息差不多。就是说:不是所有的主板BIOS信息都有编号。
    285 
    286 
    287 //另外,可以将通过以上各字段所得信息输出,逐个查看所有信息 属性和对应的值。代码如下:
    288 
    289 view plaincopy to clipboardprint?
    290 ManagementClass mc = new ManagementClass("Win32_Processor"); 
    291 ManagementObjectCollection moc = mc.GetInstances(); 
    292 foreach( ManagementObject mo in moc ) 
    293 { 
    294 textBox1.Text += "/r/n============CUP信息==========="; 
    295 foreach (PropertyData pd in mo.Properties) 
    296 { 
    297 textBox1.Text += "/r/n" + pd.Name + "/t"; 
    298 if (pd.Value != null) 
    299 { 
    300 textBox1.Text += pd.Value.ToString(); 
    301 } 
    302 } 
    303 textBox1.Text += "/r/n/r/n======================="; 
    304 } 
  • 相关阅读:
    算法设计之hash---hash 函数、hash表
    图像处理之换脸---手把手教你使用 Deepfakes 换脸
    图像处理之搜图---实现以图搜图
    机器学习之python---Python实现逻辑回归(LogisticRegression)
    嵌入式开发之usb 转 net --- 支持持USB 网络适配器方案
    嵌入式开发之网卡--- Ethernet 以太网 MAC、MII、PHY、MDIO、IEEE802.3 详解
    机器学习之RNN ---LSTM原理及实现详解
    Docker的学习
    网络7层 4层 5层 协议
    netstat 查看端口、进程占用
  • 原文地址:https://www.cnblogs.com/dt520/p/6170366.html
Copyright © 2020-2023  润新知