Mega Code Archive

 
Categories / Delphi / Hardware
 

How to get info on memory usage from a given process

Title: How to get info on memory usage from a given process function GetProcessMemorySize(_sProcessName: string; var _nMemSize: Cardinal): Boolean; var l_nWndHandle, l_nProcID, l_nTmpHandle: HWND; l_pPMC: PPROCESS_MEMORY_COUNTERS; l_pPMCSize: Cardinal; begin l_nWndHandle := FindWindow(nil, PChar(_sProcessName)); if l_nWndHandle = 0 then begin Result := False; Exit; end; l_pPMCSize := SizeOf(PROCESS_MEMORY_COUNTERS); GetMem(l_pPMC, l_pPMCSize); l_pPMC^.cb := l_pPMCSize; GetWindowThreadProcessId(l_nWndHandle, @l_nProcID); l_nTmpHandle := OpenProcess(PROCESS_ALL_ACCESS, False, l_nProcID); if (GetProcessMemoryInfo(l_nTmpHandle, l_pPMC, l_pPMCSize)) then _nMemSize := l_pPMC^.WorkingSetSize else _nMemSize := 0; FreeMem(l_pPMC); Result := True; end; //Beispiel procedure TForm1.Button1Click(Sender: TObject); var l_nSize: Cardinal; begin if (GetProcessMemorySize('Unbenannt - Editor', l_nSize)) then ShowMessage('Size: ' + IntToStr(l_nSize) + ' byte') else ShowMessage('Error'); end;