本文整理自网络,侵删。
方法一: 要加单元 PsAPIprocedure TForm1.tmr1Timer(Sender: TObject);begin edt1.Text:= format('memory use: %d KB', [GetProcessMemUse(GetCurrentProcessId)]);//方法一end; function TForm1.GetProcessMemUse(PID: Cardinal): Cardinal; //方法一varpmc: PPROCESS_MEMORY_COUNTERS; //uses psApiProcHandle: HWND;iSize: DWORD;begin Result := 0; iSize := SizeOf(_PROCESS_MEMORY_COUNTERS); GetMem(pmc, iSize); try pmc^.cb := iSize; ProcHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PID); //由PID取得进程对象的句柄 if GetProcessMemoryInfo(ProcHandle, pmc, iSize) then Result := pmc^.WorkingSetSize; Result :=Result div 1024; finally FreeMem(pmc); end;end; //********************************************* 方法二:要加单元 PsAPI, Tlhelp32;procedure TForm1.tmr1Timer(Sender: TObject);var str,str2:string;begin if (GetProcessMemorySize('proj1.exe',str,str2)) then //方法二 参数要写程序名,不好 begin edt2.Text :='当前内存使用:'+ str +'KB'; end;end;function TForm1.GetProcessMemorySize(ProcessName: string; var Size, //方法二 PN: string): Boolean;varpProcess:THandle;MemSize,t:Integer;hProcSnap:THandle;PPMCSize:Cardinal;pe32:TProcessEntry32;PPMC:PPROCESS_MEMORY_COUNTERS;begin PPMCSize := SizeOf(PROCESS_MEMORY_COUNTERS); GetMem(PPMC, PPMCSize); PPMC^.cb:= PPMCSize; hProcSnap:=CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0); if hProcSnap=INVALID_HANDLE_VALUE then Exit; pe32.dwSize:=SizeOf(ProcessEntry32); if Process32First(hProcSnap,pe32)=True then while Process32Next(hProcSnap,pe32)=True do begin if uppercase(pe32.szExeFile)=uppercase(ProcessName) then begin pProcess:=OpenProcess(PROCESS_ALL_ACCESS,FALSE, pe32.th32ProcessID); if (GetProcessMemoryInfo(pProcess,PPMC,PPMCSize)) then begin MemSize:=PPMC^.WorkingSetSize div 1024; t:= Length(IntToStr(MemSize))-2; Size:=IntToStr(MemSize); Insert(',',Size,t); PN:=ProcessName; FreeMem(PPMC); Result:=True; end else begin FreeMem(PPMC); Result:=False; end; end; end; CloseHandle(pProcess); CloseHandle(hProcSnap);end;
相关阅读 >>
Delphi中exit,abort,break,continue的区别介绍
Delphi firemonkey在画布上绘制 imagelist图像
Delphi 10.3版本获取windows系统版本和cpu信息
winapi 字符及字符串函数(12): lstrlen - 串长度
Delphi xe5 android实现繁体字到简体字的转换函数
更多相关阅读请进入《Delphi》频道 >>