获取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 注意

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值