c# - 如何获取已安装的 RAM 和 CPU 详细信息 c# .Net Core?
问题描述
我需要以 GB 为单位的已安装总 RAM 以及 CPU 详细信息。我看到很多与此相关的帖子。但是,我不确定哪个适合我。而且,我也尝试了几个例子,但它没有提供预期的结果。
例如,我需要如下所示,
RAM 大小 = 16 GB
CPU = Intel(R) Core(TM) i5 3.20 GHz 2 核
注意:我不期望可用或已用内存。
更新 :
要获取 RAM 详细信息,我使用了以下代码
string Query = "SELECT MaxCapacity FROM Win32_PhysicalMemoryArray";
ManagementObjectSearcher searcher123 = new ManagementObjectSearcher(Query);
foreach (ManagementObject WniPART in searcher123.Get())
{
UInt32 SizeinKB = Convert.ToUInt32(WniPART.Properties["MaxCapacity"].Value);
UInt32 SizeinMB = SizeinKB / 1024;
UInt32 SizeinGB = SizeinKB / (1024 * 1024);
Console.WriteLine("Size in KB: {0}, Size in MB: {1}, Size in GB: {2}", SizeinKB, SizeinMB, SizeinGB);
}
但是,这给了我错误的数据(事实上,它给了 32 GB 而不是 16GB)
解决方案
看起来你使用了错误的类。尝试Win32_PhysicalMemory
类和Capacity
属性
var query = "SELECT Capacity FROM Win32_PhysicalMemory";
var searcher = new ManagementObjectSearcher(query);
foreach (var WniPART in searcher.Get())
{
var capacity = Convert.ToUInt64(WniPART.Properties["Capacity"].Value);
var capacityKB = capacity / 1024;
var capacityMB = capacityKB / 1024;
var capacityGB = capacityMB / 1024;
System.Console.WriteLine("Size in KB: {0}, Size in MB: {1}, Size in GB: {2}", capacityKB, capacityMB, capacityGB);
}
类中的MaxCapacity
属性Win32_PhysicalMemoryArray
将为您提供机器上可安装的最大 RAM 量,而不是实际安装的内存量。
推荐阅读
- javascript - 反应映射对象数组按值创建容器并将对象插入该容器
- c++ - 没有为 Makefile 创建目标的规则
- java - 我可以覆盖确定重复的 Hashsets 方式吗?
- nagios - 从 Observium 到 Icinga 的通知传输
- python - bs4 的问题,声称我正在使用 python 3 运行 bs4 的 python 2 版本
- excel - 如何使用 Microsoft Excel 生成图表
- java - Arraylist<> 为 null,尽管它已在构造函数中初始化
- python - 尚未安装 RandomForestClassifier 实例。在使用此方法之前使用适当的参数调用“fit”
- angular - 当用户在垫选项卡之间切换时重新启动表单
- html - Bootstrap 4 文本从手机分辨率表中“出去”