调用API
VOID GlobalMemoryStatus(
    LPMEMORYSTATUS lpBuffer // pointer to the memory status structure  
   );
用BCB则:
...
MEMORYSTATUS  memory;
GlobalMemoryStatus(&memory);
...
需要的信息都在MEMORYSTATUS 中。

解决方案 »

  1.   

    半梦兄,您好:
    调用API GlobalMemoryStatus我试过了,得到的值好像相去甚远...
      

  2.   

    function getusedmemory:string;
    var ms:tmemorystatus;
    begin
    result:=inttostr(ms.dwMemoryLoad);
    end;
      

  3.   

    用 AHM 组件 很容易
      

  4.   

    请问AP兄:
    用AHM哪个组件?
      

  5.   

    我的问题还是没有解决!
    我用GetMemoryStatus函数监视了,发现我的程序在运行了10小时后它的返回值
    只增中了800K,但是用SysMon监视的"已分配内存"项却增加了80兆!
    我是这样用的:
    系统已分配内存总数:=总物理内存数-可用物理内存数+交换文件大小-
        可用的交换文件大小
    也就是:
        UsedMemory:=dwTotalPhys-dwAvailPhys+dwTotalPagefile-
        dwAvailPagefile;
    这样的用法对吗?