用GlobalMemoryStatus获取系统内存信息

摘  要:用GlobalMemoryStatus函数获取系统内存的信息,用GlobalMemoryStatusEx获取内存的使用信息。两者的区别就是前者用4个字节来保存内存大小,后者用8个字节来保存内存大小。

关键字:GlobalMemoryStatusEx  GlobalMemoryStatus   MEMORYSTATUS  MEMORYSTATUSEX

获取Windows内存信息需要使用GlobalMemoryStatus函数和MEMORYSTATUS结构体;如果是64位的系统,需要使用扩展函数GlobalMemoryStatusEx和MEMORYSTATUSEX。

GlobalMemoryStatus

VOID  GlobalMemoryStatus(

LPMEMORYSTATUS lpBuffer   // pointer to the memory status structure

);

功能:获取当前物理内存和虚拟内存的信息。

参数:

LPMEMORYSTATUS  lpBuffer  出参,指向一个MEMORYSTATUS结构体,用于保存当前系统的物理内存和虚拟内存的信息。

MEMORYSTATUS

typedef struct _MEMORYSTATUS { // mst

DWORD dwLength;        // sizeof(MEMORYSTATUS) 本结构体的大小

DWORD dwMemoryLoad;    // percent of memory in use 返回一个0~100的值,系统内 存的使用率

DWORD dwTotalPhys;     // bytes of physical memory  物理内存的大小

DWORD dwAvailPhys;     // free physical memory bytes  可用物理内存的大小

DWORD dwTotalPageFile; // bytes of paging file    页面文件(交换文件)的总大小

DWORD dwAvailPageFile; // free bytes of paging file   可用的页面文件的大小

DWORD dwTotalVirtual;  // user bytes of address space  用户可用的虚拟地址空间大小

DWORD dwAvailVirtual;  // free user bytes   可用的虚拟地址空间大小

} MEMORYSTATUS, *LPMEMORYSTATUS;

保存内存大小的空间都是DWORD类型的变量,因此最多可以获得4个G的内存空间。如果要获得更大的空间,必须使用扩展函数GlobalMemoryStatusExMEMORYSTATUSEX

注意在MEMORYSTATUSEX结构体中,保存内存大小的变量都是DWORDLONG类型的,8个字节大小。

typedef struct _MEMORYSTATUSEX {

DWORD dwLength;      本结构体的大小,使用这个结构体前必须初始化

DWORD dwMemoryLoad;

DWORDLONG ullTotalPhys;

DWORDLONG ullAvailPhys;

DWORDLONG ullTotalPageFile;

DWORDLONG ullAvailPageFile;

DWORDLONG ullTotalVirtual;

DWORDLONG ullAvailVirtual;

DWORDLONG ullAvailExtendedVirtual;

} MEMORYSTATUSEX,  *LPMEMORYSTATUSEX;

BOOL  GlobalMemoryStatusEx(

LPMEMORYSTATUSEX  lpBuffer

);

用GlobalMemoryStatus获取系统内存信息相关推荐

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

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

  2. 易语言调用GlobalMemoryStatusEx读取系统内存信息

    GlobalMemoryStatusEx函数用于获取系统内存信息,是Kernel32.dll提供的接口,,这个函数在预计程序会装在有4GB内存的机器上运行. 获取系统内存信息有2个api,分别是Glo ...

  3. python获取系统内存占用信息的实例方法

    psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息.它主要应用于系统监控, ...

  4. 系统内存信息获取工具类

    /** * 得到系统内存信息的工具类 * @author zwenkai */ public class SystemInfoUtils { /** * 得到运行的进程总个数 * * @param c ...

  5. python获取系统硬件信息

    python获取系统硬件信息 github项目 https://github.com/giampaolo/psutil cpu,内存,etc.

  6. Qt开发中获取系统相关信息的方法,值得收藏参考

    本文转自https://zhuanlan.zhihu.com/p/111005951,这篇写的很详细,但是macos相关的只有一部分太少了,基本都是Windows的,我个人后续也会把相关的系统调用方式 ...

  7. 【C函数】sysinfo获取系统相关信息

    Linux中,sysinfo是用来获取系统相关信息的结构体,返回系统的统计信息. 头文件: #include <sys/sysinfo.h> 函数声明: int sysinfo (stru ...

  8. GetVersionEx 获取系统版本信息

    转自:http://blog.csdn.net/yyingwei/article/details/8286658 最近在windows 8上获取系统版本信息需要调用系统API,于是用到了GetVers ...

  9. android获取app内存信息,Android 获取内存信息(RAM,ROM)

    一.RAM,ROM简单介绍 RAM为运行内存,比如,360手机助手的悬浮窗,经常提示的运行内存超过80%之类的,指的都是运行内存.一般大小为几个G. ROM为存储数据的内存,比如,爱奇艺APP在视频页 ...

  10. ansible playbook脚本获取系统版本信息

    ansible playbook脚本获取系统版本信息 执行环境说明 脚本执行过程中实测系统为 redhat6.redhat7 suse11 suse12: [root@ansible_host ~]# ...

最新文章

  1. 【力扣网练习题】两数之和
  2. 他22岁在家自造芯片,性能接近英特尔初代,连光刻机都有解决方案
  3. 请投上您的一票,助力 2019 开源基础设施峰会
  4. 基于SignalR的消息推送与二维码描登录实现
  5. PHP扩展开发教程,通过实例来展示PHP的扩展开发和底层应用原理(C语言非zephir)...
  6. 【TensorFlow】PyCharm中无法识别tensorflow、numpy等Python库问题的解决办法
  7. python 识别数字字母 训练集_Python 实现训练集、测试集随机划分
  8. 网络研讨室_网络研讨会:Java 9的第一印象–构建可伸缩企业应用程序的新方法...
  9. 管理任务执行-如何制定有效的机制
  10. C#常用单元测试框架比较:XUnit、NUnit和Visual Studio(MSTest)
  11. 终于!商汤科技开源DAVIS2017视频目标分割冠军代码
  12. 电商千万级交易的金手指:分布式事务管理
  13. 与数据绑定相关的接口(转)
  14. java函数式编程的好处
  15. 【蓝桥杯Java组】数论基础—素数筛、最大公约数、最小公倍数
  16. js获取浏览器高度 宽度
  17. 14 、软件测试-MySQL的基本使用方法-增删改查
  18. 霍尼韦尔和上工申贝达成战略合作,打造智能化物流仓储管理
  19. 解决 Ubuntu 22.04 Fractional Scaling 画面伸缩后应用程序模糊
  20. 月报总结|Moonbeam 7月份大事一览

热门文章

  1. linux sudo 命令
  2. Python--day46--mysql触发器
  3. 读Zepto源码之IOS3模块
  4. 首页大屏广告效果 jquery轮播图淡入淡出
  5. 1.《Spring学习笔记-MVC》系列文章,讲解返回json数据的文章共有3篇,分别为:...
  6. cloudera manager安装使用
  7. android第一行代码-6.自定义控件的实现
  8. linkin大话设计模式--抽象工厂
  9. 以前收集到的PHP总结笔记
  10. DataSet自定义添加table并添加数据