文章目录[隐藏]
GlobalMemoryStatus位于kernel32.dll,用来获取获取物理和虚拟内存信息。
GlobalMemoryStatus
此函数无返回值,参数是一个指向名为MEMORYSTATUS的结构的指针。函数的返回信息会被存储在MEMORYSTATUS结构中。
此函数用来替代用来支持16位应用程序的GetFreeSpace函数。
2G以上内存建议使用GlobalMemoryStatusEx函数代替(2~4G需要链接器/LARGEADDRESSAWARE选项,4G以上不支持)
应用程序应该在申请内存前调用此函数以防止影响到其他程序运行。
这个函数的返回值是动态的,并且可能返回相同的值。
VOID GlobalMemoryStatus
(
LPMEMORYSTATUS lpBuffer
);
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”