C# WMI选择多个条目

C# WMI选择多个条目,c#,wmi,wmi-query,C#,Wmi,Wmi Query,所以我有一个程序,在那里我可以得到关于用户机器的一般信息。我试图从WMI中获取多个条目,即处理器名称、时钟速度、体系结构和核心计数。然而,选择整个事物是非常有害的。所以我想弄清楚我是否可以在不使用通配符的情况下查询多个条目 ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_Processor"); searcher.Get();

所以我有一个程序,在那里我可以得到关于用户机器的一般信息。我试图从WMI中获取多个条目,即处理器名称、时钟速度、体系结构和核心计数。然而,选择整个事物是非常有害的。所以我想弄清楚我是否可以在不使用通配符的情况下查询多个条目

            ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_Processor");
        searcher.Get();

        foreach (ManagementObject share in searcher.Get())
        {
            var clockSpeedM = share["CurrentClockSpeed"];
            var Name = share["Name"];
            var CoreCount = share["NumberOfCores"];

            double clockSpeedG = Math.Round(Convert.ToDouble(clockSpeedM) / 1000, 2);

            if (share["Architecture"].ToString() == "9")
            {
                Name = Name + " (64-bit)";
            }
            else
            {
                Name = Name + " (32-bit)";
            }

            return Name + " " + CoreCount + " cores" + " ~" + clockSpeedG + "GHz";

        }

只需将
*
替换为所需列的名称即可。列名应以逗号分隔。还请注意,
ManagementObjectSearcher
实现了
IDisposable
,因此您应该在使用后对其进行处理。最简单的方法是使用语句将其包装在
中。谢谢您的帮助!