• C#中的ManagementClass类


    C# 提供了ManagementClass类来获取本机的一些基本信息,比如CPU的个数,CPU的频率,网卡的MAC,内存的大小,硬盘的大小等。

    获取本机MAC地址:

    复制代码
           /// <summary>
           /// 获取本机的MAC地址
           /// </summary>
           /// <returns></returns>
           public static string GetMACString()
           {
               ManagementClass mAdapter = new ManagementClass("Win32_NetworkAdapterConfiguration");
               ManagementObjectCollection mo = mAdapter.GetInstances();
               foreach (ManagementBaseObject m in mo)
               {
                   if ((bool)m["IpEnabled"] == true)
                   {
                       return m["MacAddress"].ToString();
                   }
               }
               mo.Dispose();
               return null;
           }
    
    获取本机CPU的个数:
    
    /// <summary>
           /// 获取CPU的个数
           /// </summary>
           /// <returns></returns>
           public static int GetCpuCount()
           {
               try
               {
                   using (ManagementClass mCpu = new ManagementClass("Win32_Processor"))
                   {
                       ManagementObjectCollection cpus = mCpu.GetInstances();
                       return cpus.Count;
                   }
               }
               catch
               {
               }
               return -1;
           }
    
    获取本机CPU的频率
    
    /// <summary>
           /// 获取CPU的频率 这里之所以使用string类型的数组,主要是因为cpu的多核
           /// </summary>
           /// <returns></returns>
           public static string[] GetCpuMHZ()
           {
               ManagementClass mc = new ManagementClass("Win32_Processor");
               ManagementObjectCollection cpus = mc.GetInstances();
    
               string[] mHz = new string[cpus.Count];
               int c = 0;
               ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor");
               foreach (ManagementObject mo in mySearch.Get())
               {
                   mHz[c] = mo.Properties["CurrentClockSpeed"].Value.ToString();
                   c++;
               }
               mc.Dispose();
               mySearch.Dispose();
               return mHz;
           }
    
    获取本机硬盘的大小
    
    /// <summary>
           /// 获取硬盘的大小
           /// </summary>
           /// <returns></returns>
           public static string GetSizeOfDisk()
           {
               ManagementClass mc = new ManagementClass("Win32_DiskDrive");
               ManagementObjectCollection moj = mc.GetInstances();
               foreach (ManagementObject m in moj)
               {
                   return m.Properties["Size"].Value.ToString();
               }
               return "-1";
           }
        
    
    获取本机内存的大小:
    
    /// <summary>
           /// 获取内存的大小
           /// </summary>
           /// <returns></returns>
           public static string GetSizeOfMemery()
           {
               ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
               ManagementObjectCollection moc = mc.GetInstances();
    
               double sizeAll = 0.0;
               foreach (ManagementObject m in moc)
               {
                   if (m.Properties["TotalVisibleMemorySize"].Value != null)
                   {
                       sizeAll += Convert.ToDouble(m.Properties["TotalVisibleMemorySize"].Value.ToString());
                   }
               }
               mc = null;
               moc.Dispose();
    
               return sizeAll.ToString();
           }
    复制代码

    本程序是使用VS2005编写的,可运行。

    ManageMentClass 对象被实例化时,根据初始化参数的不同能够获取不同的本地信息:"Win32_NetworkAdapterConfiguration" 获取本机网络适配器对象。据此可以获取网络地址等。"Win32_DiskDiver" 获取本机硬盘的相关信息,"Win32_Processor" 获取本机CPU相关的信息。"Win32_OperatingSystem" 获取内存等相关信息。

     
     
  • 相关阅读:
    Java面试中常问的Spring方面问题(涵盖七大方向共55道题,含答案)
    Node.js环境搭建
    Node.js的开源博客系统Ghost搭建教程
    探讨一个“无法创建JVM”的问题(已解决)
    Spring Boot快速入门
    Spring Boot开发Web应用
    Spring Boot工程结构推荐
    元类的剖析和单例
    多态的简单剖析、内置方法和异常的解读
    面向对象的解释和属性查找的方式解读
  • 原文地址:https://www.cnblogs.com/wwwbdabc/p/11683376.html
Copyright © 2020-2023  润新知