Acabei entendendo errado sua pergunta na verdade aquela função pega a prioridade de um processo utilizando a GetProcessPriority foi mal..
Mas pro teu caso tu pode utilizar a função GetProcessMemoryInfo da PsApi.
Tipo assim:
Código:
function MemoriaDoProcesso ( PID : Cardinal): Cardinal;
var
HWNDP : HWND;
PMC : PPROCESS_MEMORY_COUNTERS;
C : Cardinal;
begin
result := 0;
C := SizeOf(PROCESS_MEMORY_COUNTERS);
GetMem(PMC, C);
PMC^.cb := C;
HWNDP := OpenProcess(PROCESS_ALL_ACCESS, False, PID);
try
if (GetProcessMemoryInfo(HWNDP, PMC,C)) then
Result := PMC^.WorkingSetSize else Result := 0;
except
end;
FreeMem(PMC);
end;
E para utiliza-lá poderia ser num loop que você está fazendo para listar os processos... Vamos supor um trecho do código:
Código:
with listview1.items.add do begin
caption := inttostr(PE.th32processid); //PID
subitems.add(PE.szexefile); //nome do processo
subitems.add(inttostr(MemoriaDoProcesso(pe.th32processid))); //memória em bytes
end;
Sendo que "PE" é uma variável do tipo tprocessentry32 da tlhelp32 para listar os processos.
t+