Witam
Na początku napiszę, że przejrzałem wszystkie arty ale część z nich się zdezaktualizowała z uwagi na nowe wersje systemu Windows WinXp i Win7, których to ta sprawa dotyczy;
mam taką procedurę:

var S: String;
    H: THandle;
    ProcID: Integer;               // numer procesu przydzielony przez system
 
    pmc2: TProcessMemoryCounters;
 
    pMemSize: String;
 
begin
   ProcID:= _proc.th32ProcessID;
   pmc2.cb := SizeOf(pmc) ;
   if GetProcessMemoryInfo(ProcID, @pmc2, SizeOf(pmc2))
      then pMemSize:= FormatFloat('00.', pmc2.WorkingSetSize/1024) // Usage in Bytes
      else pMemSize:= '-1';                 // fail
 

i niby wszystko ok ale nie działa poprawnie bo nawet jak mój program uruchomię w kilku kopiach to każda kopia zajmuje inną wielkość pamięci a w porównaniu z managerem Windowsa XP też się różnią wartości;
ma ktoś stabilną funkcje do tego? fajnie by było jakby wartości zajętości były takie same jak na managerach windows Xp i Win 7 ale cudów nie oczekuje

pozdrawiam