在程序中,调用WMI的时候,出现一个问题,就是我系统有插了两条内存条,共4G。然而自己只能在程序中查到安装内存为2G,感觉有点不淡定。这是之前的代码。

static ManagementObjectSearcher PhysicalMemory = new ManagementObjectSearcher("select * from Win32_PhysicalMemory");

// 安装内存
    string hd = strInstalledMemory + String.Format("{0} GB", Convert.ToInt64(GetValue(PhysicalMemory, "Capacity")) / 1024 / 1024 / 1024);

static object GetValue(ManagementObjectSearcher searcher, string propName)

   {
     foreach (ManagementObject mobj in searcher.Get())
     return mobj[propName];
    throw new NotSupportedException();
    }

这个明显是不完整的,并没有查询到所有的内存,多个内存条的话,就不行了。然后我改进了下:

//获取安装内存大小

      double capacity = 0;
      string hd = "";
     ManagementClass cimobject1 = new ManagementClass("Win32_PhysicalMemory");
     ManagementObjectCollection moc1 = cimobject1.GetInstances();
    foreach (ManagementObject mo1 in moc1)
    {
                 capacity += ((Math.Round(Int64.Parse(mo1.Properties["Capacity"].Value.ToString()) / 1024 / 1024 / 1024.0, 1)));
          
     }
       moc1.Dispose();
      cimobject1.Dispose();

hd = "安装内存:"+ capacity + "G";

这样就搞定了。水平有限,如有更好的方法,求分享。。

关于c# 中读取系统内存大小的问题。的更多相关文章

  1. Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)

    本节内容主要是讲解ActivityManager的使用,通过ActivityManager我们可以获得系统里正在运行的activities,包括 进程(Process)等.应用程序/包.服务(Serv ...

  2. C++ 中mallon动态分配内存大小用法

    #include<iostream> using namespace std; int main(){ char *s; int n; cin>>n; s= (char *) ...

  3. Linux c读取系统内存使用信息

    系统的内存使用信息能够在虚拟文件系统/proc/meminfo中找到,如图 所以只要打开/proc/meminfo文件,然后从中读取信息就好了 #include <stdio.h>#inc ...

  4. android 源码 中修改系统字体大小

    在源码\android\frameworks\base\core\java\android\content\res \Configuration.java下有读取DEFAULT_FONTSCALE的值 ...

  5. 计算python中对象的内存大小

    一般的sys.getsizeof()显示不了复杂的字典. 查看类中的内容: def dump(obj): for attr in dir(obj):#dir显示类的所有方法 print(" ...

  6. linux下读取系统内存的demo

    #include <stdio.h> #define KIBIBYTE_SIZE 1024LL #define MEBIBYTE_SIZE 1048576LL #define GIBIBY ...

  7. C#获取电脑型号、系统版本、内存大小、硬盘大小、CPU信息

    摘要 有时需要获取电脑的相关信息.这时可以通过调用windows api的方式,进行获取. 方法 可以通过在powershell中 通过下面的命令进行查询,然后可以通过c#调用获取需要的信息. gwm ...

  8. Linux 系统TCP连接内存大小限制 调优

    系统TCP连接内存大小限制 TCP的每一个连接请求,读写都需要占用系统内存资源,可根据系统配置,对TCP连接数,内存大小,限制调优. 查看系统内存资源 记录内存 详情:cat /proc/meminf ...

  9. 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小

    原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...

随机推荐

  1. Java实现输出“杨辉三角”

    import java.util.Scanner; public class SumTrangles { public static void func(int n) { if (n < 0) ...

  2. Nginx+Tomcat+Memcache 实现session共享

    Nginx + Tomcat + Memcache 实现session共享 1. Nginx 部署 1.上传源码包到服务器,解压安装 下载地址:http://nginx.org/en/download ...

  3. Java连载20-复习、switch语句

    一.复习 1.标识符(自己定义的,下划线.美元符号) 2.驼峰命名(变量名,方法名首字母小写) 3.关键字(就是固定的那几个) 4.字面值(数据.有类型.八种基本类型从小到大,byte\char=sh ...

  4. tensorboard--打开训练的日志文件

    tensorboard --logdir=logs 注意:等号之间不要空格.

  5. 基于MicroPython:TPYBoard心率监测器

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 一.前言 这几年智能穿戴设备大火,尤其是手环类,从A ...

  6. [.NET] 控制只启动单个指定外部程序

    独立观察员 2019 年 6 月 12 日 有的时候我们程序需要启动外部程序来配合实现某些功能,比如启动一个 Cef 相关程序来承载网页.那么如果那个外部程序并没有实现单例启动,我们程序去启动它的时候 ...

  7. 创建vue3项目

    最近准备做一个vue的小项目关于vue3的使用. 首先在vscode全局安装vue脚手架,npm i -g @vue/cli. 然后创建vue项目,vue create mydemo(项目名). 接下 ...

  8. 大话区块链【Blockchain】

    最近这几天区块链又粉墨登场了,新闻媒体也一直在大量报道,宣称可能要在金融界掀起一番浪潮.甚至有人说很久之前中国就出现了区块链的产物——麻将.那么区块链到底是什么,麻将和区块链又有什么关系呢? 笔者这两 ...

  9. eclipse启动tomcat警告 [SetPropertiesRule]{Server/Service/Engine/Host/Context}

    解决问题:解决办法是:关闭tomcat,双击eclipse下tomcat服务器,在出来的Tomcat server at localhost页面中找到server options选项,选中其中的选项” ...

  10. JMeter性能测试入门--简单使用

    1.JMeter整体简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试 ...