¿Has tratado de probar de esta forma?
Código Delphi
[-]
PERFORMANCE_INFORMATION = record
cb: DWORD;
CommitTotal: DWORD;
CommitLimit: DWORD;
CommitPeak: DWORD;
PhysicalTotal: DWORD;
PhysicalAvailable: DWORD;
SystemCache: DWORD;
KernelTotal: DWORD;
KernelPaged: DWORD;
KernelNonpaged: DWORD;
PageSize: DWORD;
HandleCount: DWORD;
ProcessCount: DWORD;
ThreadCount: DWORD;
end;
PPERFORMANCE_INFORMATION = ^PERFORMANCE_INFORMATION;
function GetPerformanceInfo(pPI: PPERFORMANCE_INFORMATION; cb: DWORD): boolean; stdcall; external 'psapi.dll';
var
PI: PERFORMANCE_INFORMATION;
begin
GetPerformanceInfo(@PI, sizeof(PI));
ShowMessage('Memoria total: ' + IntToStr(PI.PhysicalTotal * PI.PageSize) + ' Bytes');
end;
(Probado en WinXP Sp3, Delphi7 y PC con dos módulos de memoria RAM).
Saludos.