【问题标题】:Accessing the number of processors in WMI访问 WMI 中的处理器数量
【发布时间】:2012-03-17 00:44:05
【问题描述】:

我在这里浏览了许多有关 WMI 的帖子,但仍然遇到了一些麻烦。我想从 WMI 检索 CPU 使用情况,我的查询检索 ManagementObjectSearcher 必须提供的所有内容,但它返回 null 并且从不拉回任何信息。

另外,对于我要提取的数据类型,我应该使用 int16 吗?

希望有人能对此有所了解并送我上路。谢谢。

public void GetPhysicalMemory()
{
    ManagementObjectSearcher mgtObj = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_ComputerSystem");   // Win32_OPeratingSystem");
    ManagementObjectCollection mgtColl = mgtObj.Get();

   // foreach (ManagementObject obj in  mgtObj.Get())
    if (mgtColl.Count != 0 )
    {
        foreach (ManagementBaseObject mgtBaseObj in mgtColl)
        {
            var[] data = mgtBaseObj["NumberOfProcessors"] as int16[];

            if (data != null)
            {
                Console.WriteLine(data);
            }
            else
            {
                Console.WriteLine("Collection = null");
                Console.Read();
                Console.Read();

            }
        }
    }

【问题讨论】:

  • 您要获取处理器数量还是 CPU 使用率?
  • 我实际上正在寻找更多来返回 CPU 使用率,我在黑暗中使用 NumberOfProcessors 拉回任何东西。

标签: c# wmi


【解决方案1】:

您可以使用ManagementObject 变量直接遍历ManagementObjectSearcher.Get 方法返回的集合,从这里您可以使用item 属性或通过[] 表示法访问每个属性。

检查此示例应用程序。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Text;

namespace ConsoleFoo
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                ManagementObjectSearcher mgtObj = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_ComputerSystem");
                foreach (ManagementObject item in mgtObj.Get())
                {
                    Console.WriteLine("Number Of Processors  {0}", item["NumberOfProcessors"]);
                }
            }
            catch (ManagementException e)
            {
                Console.WriteLine("Exception {0} ", e.Message);
            }
            Console.ReadKey();
        }
    }
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 2016-08-28
  • 1970-01-01
  • 2013-11-27
  • 2019-10-27
相关资源
最近更新 更多