zoukankan      html  css  js  c++  java
  • 获取windows系统信息

    在应用程序中,有时需要在界面中显示计算机的硬件信息和进程信息。在.Net中提供了可以查询信息的类。Management类,在程序中添加应用后进行使用。

    1 属性

    类似的属性介绍可见下面:
    属性介绍
    根据以上的属性介绍可以查询常见的信息,比如内存,硬件等等。当然在内存信息中还有分类,在上述属性介绍中也有,同样通过代码也是可以获取。

    2 编写流程

    a 初始化

     ManagementClass SystempMeg = new ManagementClass(syetemType);
    

    其中systtemtype就是上面属性介绍:
    Win32_Processor:获取cpu信息。
    Win32_OperatingSystem:内存信息。等等可以打开上述链接查询
    b 获取信息中属性
    在内存信息中需要查询可用内存大小和未使用的,所以需要获取属性名称。
    可通过程序进行获取,如下:

                    ManagementObjectSearcher MySearch = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
                    SystempMeg.Options.UseAmendedQualifiers = true;
                    PropertyDataCollection properties = SystempMeg.Properties;
                    foreach (PropertyData property in properties)
                    {
                        WriteMegLog(
                             "---------------------------------------");
                        WriteMegLog(property.Name);
                        WriteMegLog("Description: " +                         property.Qualifiers["Description"].Value);
    
                    }
    //c 获取属性值 
    //在知道有关属性关键词后,下面就是获取属性值
    
                    foreach (ManagementObject c in MySearch.Get())
                    {
                     WriteMegLog("Value: ");
                        WriteMegLog(
                            c.Properties[property.Name.ToString()].Value.ToString());
                   }

    在通过函数获取Mysearch后,再进行查询。为此结束。

    3 代码片

     ManagementClass SystempMeg;
            public SystemMessage (string syetemType)
            {
                SystempMeg = new ManagementClass(syetemType);
            }
            public void GetCpuSystemMeg()
            {
                if (SystempMeg != null)
                {
                    ManagementObjectSearcher MySearch = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
                    foreach (ManagementObject MyObject in MySearch.Get())
                    {
                        WriteMegLog("CPU处理器系列类型:");
                        WriteMegLog(MyObject.Properties["Family"].Value.ToString());
                        WriteMegLog("该处理器的最大速度(以兆赫为单位):");
                        WriteMegLog(MyObject.Properties["MaxClockSpeed"].Value.ToString());
                        WriteMegLog("CPU的当前状态为:");
                        WriteMegLog(MyObject.Properties["CpuStatus"].Value.ToString());
                        WriteMegLog("CPU处理器的当前速度(以兆赫为单位):");
                        WriteMegLog(MyObject.Properties["CurrentClockSpeed"].Value.ToString());
                    }
                    MySearch.Dispose();
                    SystempMeg.Dispose();
    
                } 
            }

    4 注意

    在获取属性值,有的属性值无法获取,现在还没找到原因,比如获取当前网速。

  • 相关阅读:
    mysql下载与安装
    Observable Flowable Test
    Linux 技巧:让进程在后台可靠运行的几种方法
    CallBack
    Linux内存分析
    Linux安装svn
    百度地图api
    安装Mysql官方的sakila数据库
    yii2 展示静态页面
    yii2 手动安装第三方扩展
  • 原文地址:https://www.cnblogs.com/polly333/p/4498397.html
Copyright © 2011-2022 走看看