请使用GlobalMemoryStatus这个API函数。Declare Sub GlobalMemoryStatus Lib "kernel32" Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS) Type MEMORYSTATUS dwLength As Long dwMemoryLoad As Long dwTotalPhys As Long dwAvailPhys As Long dwTotalPageFile As Long dwAvailPageFile As Long dwTotalVirtual As Long dwAvailVirtual As Long End TypeDim MS as MEMORYSTATUS MS.dwLenght=Len(MS) GlobalMemoryStatus MS其他内容只要看看变量名就应该能知道。
Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End TypeDim MS as MEMORYSTATUS
MS.dwLenght=Len(MS)
GlobalMemoryStatus MS其他内容只要看看变量名就应该能知道。
描述
CopyMemory
将一块内存从位置拷贝到另外一个位置
FillMemory
将指定内存块内容填充为指定数据
GetWriteWatch
查找已经被写入虚拟内存区域的页面地址
GlobalMemoryStatus
获得关于系统当前对于物理内存和虚拟的内存的使用信息。
GlobalMemoryStatusEx
获得关于系统当前对于物理内存和虚拟的内存的使用信息。
IsBadCodePtr
决定调用进程是否拥有对指定地址内存的读操作权。
IsBadReadPtr
检验调用进程是否拥有对指定内存范围的读操作权。
IsBadStringPtr
检验调用进程是否拥有对指定字符串所在地址区域的读操作权。
IsBadWritePtr
检验调用进程是否拥有对指定内存范围的写操作权。
MoveMemory
将一块内存从一个位置移动到另外的位置。
ResetWriteWatch
为某片虚拟内存区域重置写跟踪状态。
ZeroMemory
用零值填充某片内存块。
以下是 AWE(Address Windowing Extensions) 函数
函数
描述
AllocateUserPhysicalPages
分配物理内存页面与进程的AWE区域建立或取消映射
FreeUserPhysicalPages
释放先前由AllocateUserPhysicalPages函数分配的物理内存页面。
MapUserPhysicalPages
映射在AWE区域内的指定地址分配的物理内存。
MapUserPhysicalPagesScatter
同上
以下的函数是全局(global)和本地(local)函数。这类函数运行速度较之其它内存管理函数为慢并且有很多特性没有提供。这就是说,新的应用程序应该尽量使用堆函数(heap functions).然而,全局函数(global functions)仍然被用在DDE和剪贴板操作中。函数
描述
GlobalAlloc
从堆中分配指定字节数量的内存。
GlobalDiscard
丢弃指定的全局内存块
GlobalFlags
返回关于指定全局内存对象的信息
GlobalFree
释放指定的全局内存对象。
GlobalHandle
返回指定全局内存块的指针的句柄。
GlobalLock
锁定一个全局内存对象并且返回指向该内存块第一个字节的指针。
GlobalReAlloc
改变指定全局内存对象的大小和属性。
GlobalSize
得到指定内存对象的当前大小。
GlobalUnlock
减少对一个内存对象的锁定数量。
LocalAlloc
从堆中分配指定数量的内存。
LocalDiscard
丢弃指定的本地内存对象
LocalFlags
返回关于指定本地内存对象的信息。
LocalFree
释放指定的本地内存对象。
LocalHandle
得到指向指定本地内存对象的指针的句柄。
LocalLock
锁定本地内存对象并且返回指向该内存对象的第一个字节的指针。
LocalReAlloc
改变指定本地内存对象的大小或者属性。
LocalSize
返回指定本地内存对象的当前大小。
LocalUnlock
减少对某内存对象的锁定数量。
以下是堆函数族。函数
描述
GetProcessHeap
获得调用进程的堆的一个句柄。
GetProcessHeaps
获得调用进程所有有效的堆的句柄。
HeapAlloc
从堆中分配一块内存
HeapCompact
尝试压紧指定的堆。
HeapCreate
创建一个堆对象。
HeapDestroy
销毁指定的堆对象。
HeapFree
释放一块从堆中分配的内存。
HeapLock
尝试获得与指定堆关联的锁定。
HeapQueryInformation
获得关于指定堆的资料。
HeapReAlloc
从堆中重新分配一块内存。
HeapSetInformation
为指定的堆设置堆信息。
HeapSize
获得一个在堆上的内存块的大小。
HeapUnlock
获得与指定堆相关联的一个锁定的所有者。
HeapValidate
尝试使指定的堆有效。
HeapWalk
枚举指定堆上的内存块。
以下是虚拟内存函数。函数
描述
VirtualAlloc
保留或提交调用进程虚拟地址空间的某一区域的页面。
VirtualAllocEx
保留或提交调用进程虚拟地址空间的某一区域的页面。
VirtualFree
释放或取消提交调用进程虚拟地址空间的某一区域的页面。
VirtualFreeEx
释放或取消提交调用进程虚拟地址空间的某一区域的页面。
VirtualLock
锁定指定的进程虚拟地址空间的指定块到物理内存中。
VirtualProtect
改变调用进程虚拟地址空间已提交页面区域的访问限制级。
VirtualProtectEx
改变调用进程虚拟地址空间已提交页面区域的访问限制级。
VirtualQuery
提供关于调用进程虚拟地址空间页面区域的资料。
VirtualQueryEx
提供关于调用进程虚拟地址空间页面区域的资料。
VirtualUnlock
对某进程虚拟地址空间的某区域的页面解锁。
dwLength :32
dwMemoryLoad▲:96
dwTotalPhys :267886592
dwAvailPhys :10571776
dwTotalPageFile :648110080
dwAvailPageFile :307961856
dwTotalVirtual :2147352576
dwAvailVirtual :2109128704
这里面的都没有 那个显示的 是 系统 当前占用的情况!!!!和任务管理器中显示的数据 完全不一致!!!!