@$#%^  在 VB 中如何实时 得到 windows中的任务管理器中的 内存 占用情况啊?@$#%^  在 VB 中如何实时 得到 windows中的任务管理器中的 内存 占用情况啊?@$#%^  在 VB 中如何实时 得到 windows中的任务管理器中的 内存 占用情况啊?

解决方案 »

  1.   

    请使用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其他内容只要看看变量名就应该能知道。
      

  2.   

    在APILoad里面是没有这一项的。
      

  3.   

    Memory Management Functions (内存管理函数)以下的函数用于内存管理函数
     描述
     
    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
     对某进程虚拟地址空间的某区域的页面解锁。 
      

  4.   

    时间:2003-8-18 14:58:55
    dwLength :32
    dwMemoryLoad▲:96
    dwTotalPhys :267886592
    dwAvailPhys :10571776
    dwTotalPageFile :648110080
    dwAvailPageFile :307961856
    dwTotalVirtual :2147352576
    dwAvailVirtual :2109128704
    这里面的都没有 那个显示的 是 系统 当前占用的情况!!!!和任务管理器中显示的数据 完全不一致!!!!
      

  5.   

    在msdn自带的VB示例中,就有一个获取内存使用情况和其它系统信息的示例,你可以看看。
      

  6.   

    在这个目录\MSDN\SAMPLES\VB98   里面又很多实用的示例