易语言GlobalMemoryStatus获取物理和虚拟内存信息

GlobalMemoryStatus

此函数无返回值,参数是一个指向名为MEMORYSTATUS的结构的指针。函数的返回信息会被存储在MEMORYSTATUS结构中。
此函数用来替代用来支持16位应用程序的GetFreeSpace函数。
2G以上内存建议使用GlobalMemoryStatusEx函数代替(2~4G需要链接器/LARGEADDRESSAWARE选项,4G以上不支持)
应用程序应该在申请内存前调用此函数以防止影响到其他程序运行。
这个函数的返回值是动态的,并且可能返回相同的值。

  1. VOID GlobalMemoryStatus
  2. (
  3. LPMEMORYSTATUS lpBuffer
  4. );

MEMORYSTATUS结构:

MEMORYSTATUS STRUCT
dwLength            DWORD      ?     ;本结构的长度
dwMemoryLoad      DWORD      ?     ;已用内存的百分比
dwTotalPhys       DWORD      ?     ;物理内存总量
dwAvailPhys       DWORD      ?     ;可用物理内存
dwTotalPageFile   DWORD      ?     ;交换文件总的大小
dwAvailPageFile   DWORD      ?     ;交换文件中空闲部分大小
dwTotalVirtual    DWORD      ?     ;用户可用的地址空间
dwAvailVirtual    DWORD      ?     ;当前空闲的地址空间
MEMORYSTATUS ENDS

结构成员的含义:
dwLength
MEMORYSTATUS结构的大小,在调GlobalMemoryStatus函数前用sizeof()函数求得,用来供函数检测结构的版本。
dwMemoryLoad
返回一个介于0~100之间的值,用来指示当前系统内存的使用率。
dwTotalPhys
返回总的物理内存大小,以字节(byte)为单位。
dwAvailPhys
返回可用的物理内存大小,以字节(byte)为单位。
dwTotalPageFile
显示可以存在页面文件中的字节数。注意这个数值并不表示在页面文件在磁盘上的真实物理大小。
dwAvailPageFile
返回可用的页面文件大小,以字节(byte)为单位。
dwTotalVirtual
返回调用进程的用户模式部分的全部可用虚拟地址空间,以字节(byte)为单位。
dwAvailVirtual
返回调用进程的用户模式部分的实际自由可用的虚拟地址空间,以字节(byte)为单位。
MEMORYSTATUS结构,

易语言

.版本 2
 
.DLL命令 GlobalMemoryStatus, 整数型, "kernel32.dll", "GlobalMemoryStatus", , 检查内存状态,返回一个MEMORYSTATUS结构
    .参数 lpBuffer, MEMORYSTATUS, , 指向一个MEMORYSTATUS结构

MEMORYSTATUS结构

.版本 2
 
.数据类型 MEMORYSTATUS, , MEMORYSTATUS
    .成员 结构长度, 整数型, , , dwLength
    .成员 实际存储器百分比, 整数型, , , dwMemoryLoad
    .成员 总物理内存, 整数型, , , dwTotalPhys
    .成员 可用内存, 整数型, , , dwAvailPhys
    .成员 总页文件, 整数型, , , dwTotalPageFile
    .成员 可用页文件, 整数型, , , dwAvailPageFile
    .成员 总虚拟内存, 整数型, , , dwTotalVirtual
    .成员 可用虚拟内存, 整数型, , , dwAvailVirtual

调用

窗口放置一个编辑框,按钮

.版本 2
 
.子程序 _按钮_内存状态_被单击
.局部变量 局部_内存状态, MEMORYSTATUS
 
局部_内存状态.结构长度 = 32
GlobalMemoryStatus (局部_内存状态)
编辑框_运行结果.内容 = 数值到格式文本 (局部_内存状态.实际存储器百分比, , 假) + “%used” + #换行符
编辑框_运行结果.内容 = 编辑框_运行结果.内容 + 数值到格式文本 (局部_内存状态.总物理内存 ÷ 1024, , 真) + “Kbyte” + #换行符
编辑框_运行结果.内容 = 编辑框_运行结果.内容 + 数值到格式文本 (局部_内存状态.可用内存 ÷ 1024, , 真) + “Kbyte” + #换行符
编辑框_运行结果.内容 = 编辑框_运行结果.内容 + 数值到格式文本 (局部_内存状态.总页文件 ÷ 1024, , 真) + “Kbyte” + #换行符
编辑框_运行结果.内容 = 编辑框_运行结果.内容 + 数值到格式文本 (局部_内存状态.可用页文件 ÷ 1024, , 真) + “Kbyte” + #换行符
编辑框_运行结果.内容 = 编辑框_运行结果.内容 + 数值到格式文本 (局部_内存状态.总虚拟内存 ÷ 1024, , 真) + “Kbyte” + #换行符
编辑框_运行结果.内容 = 编辑框_运行结果.内容 + 数值到格式文本 (局部_内存状态.可用虚拟内存 ÷ 1024, , 真) + “Kbyte”

发布日期:

所属分类: 易语言 标签: