• 【C#】 获取计算机的硬件信息


    添加引用:System.Management

      1  /// <summary>
      2         /// 获取本机的MAC地址
      3         /// </summary>
      4         /// <returns></returns>
      5         public static string GetMACString()
      6         {
      7             ManagementClass mAdapter = new ManagementClass("Win32_NetworkAdapterConfiguration");
      8             ManagementObjectCollection mo = mAdapter.GetInstances();
      9             foreach (ManagementBaseObject m in mo)
     10             {
     11                 if ((bool)m["IpEnabled"] == true)
     12                 {
     13                     return m["MacAddress"].ToString();
     14                 }
     15             }
     16             mo.Dispose();
     17             return null;
     18         }
     19 
     20 
     21 
     22         /// <summary>
     23         /// 获取CPU的个数
     24         /// </summary>
     25         /// <returns></returns>
     26         public static int GetCpuCount()
     27         {
     28             try
     29             {
     30                 using (ManagementClass mCpu = new ManagementClass("Win32_Processor"))
     31                 {
     32                     ManagementObjectCollection cpus = mCpu.GetInstances();
     33                     return cpus.Count;
     34                 }
     35             }
     36             catch
     37             {
     38             }
     39             return -1;
     40         }
     41 
     42 
     43 
     44         /// <summary>
     45         /// 获取CPU的频率 这里之所以使用string类型的数组,主要是因为cpu的多核
     46         /// </summary>
     47         /// <returns></returns>
     48         public static string[] GetCpuMHZ()
     49         {
     50             ManagementClass mc = new ManagementClass("Win32_Processor");
     51             ManagementObjectCollection cpus = mc.GetInstances();
     52 
     53             string[] mHz = new string[cpus.Count];
     54             int c = 0;
     55             ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor");
     56             foreach (ManagementObject mo in mySearch.Get())
     57             {
     58                 mHz[c] = mo.Properties["CurrentClockSpeed"].Value.ToString();
     59                 c++;
     60             }
     61             mc.Dispose();
     62             mySearch.Dispose();
     63             return mHz;
     64         }
     65 
     66 
     67 
     68         /// <summary>
     69         /// 获取硬盘的大小
     70         /// </summary>
     71         /// <returns></returns>
     72         public static string GetSizeOfDisk()
     73         {
     74             ManagementClass mc = new ManagementClass("Win32_DiskDrive");
     75             ManagementObjectCollection moj = mc.GetInstances();
     76             foreach (ManagementObject m in moj)
     77             {
     78                 return m.Properties["Size"].Value.ToString();
     79             }
     80             return "-1";
     81         }
     82 
     83 
     84 
     85 
     86         /// <summary>
     87         /// 获取内存的大小
     88         /// </summary>
     89         /// <returns></returns>
     90         public static string GetSizeOfMemery()
     91         {
     92             ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
     93             ManagementObjectCollection moc = mc.GetInstances();
     94 
     95             double sizeAll = 0.0;
     96             foreach (ManagementObject m in moc)
     97             {
     98                 if (m.Properties["TotalVisibleMemorySize"].Value != null)
     99                 {
    100                     sizeAll += Convert.ToDouble(m.Properties["TotalVisibleMemorySize"].Value.ToString());
    101                 }
    102             }
    103             mc = null;
    104             moc.Dispose();
    105 
    106             return sizeAll.ToString();
    107         }
    108 
    109         /// <summary>
    110         /// 取CPU编号
    111         /// </summary>
    112         /// <returns></returns>
    113         public static String GetCpuID()
    114         {
    115             try
    116             {
    117                 ManagementClass mc = new ManagementClass("Win32_Processor");
    118                 ManagementObjectCollection moc = mc.GetInstances();
    119 
    120                 String strCpuID = null;
    121                 foreach (ManagementObject mo in moc)
    122                 {
    123                     strCpuID = mo.Properties["ProcessorId"].Value.ToString();
    124                     break;
    125                 }
    126                 return strCpuID;
    127             }
    128             catch
    129             {
    130                 return "";
    131             }
    132 
    133         } 
  • 相关阅读:
    linux的别名(alias/unalias)
    asp.net <%%> <%#%><%=%><%@%><%$%>用法与区别
    SQL获取刚插入的记录的自动增长列ID的值
    包和继承
    面对对象编程(封装)
    面对对象编程(上)
    数组(下)
    java数组-如何在一堆数据中使用数组!
    Request和Response学习笔记5
    Request和Response学习笔记4
  • 原文地址:https://www.cnblogs.com/weimingtian/p/11577088.html
Copyright © 2020-2023  润新知