Jak odczytać stan pamięci operacyjnej
Szczawik
Wszelkie informacje o stanie pamięci w systemie zwraca funkcja GlobalMemoryStatus(Status:TMemoryStatus);. Informuje ona o dostępnej oraz całkowitej ilości pamięci fizycznej, stronicowania oraz wirtualnej. Poniższa procedura wypełnia tymi informacjami komponent TListView, podawany jako parametr:
procedure StatusPamieci(ListView:TListView);
//Dodanie wpisu do ListView
procedure DodajWpis(const Klucz, Wartosc:string);
begin
with ListView.Items.Add do
begin
Caption:=Klucz;
SubItems.Add(Wartosc);
end;
end;
var Status: TMemoryStatus;
begin
ListView.Items.BeginUpdate;
//Ustawienie stanu ListView
ListView.Clear;
ListView.ViewStyle:=vsReport;
ListView.Columns.BeginUpdate;
ListView.Columns.Clear;
with ListView.Columns.Add do
begin
Caption:='Rodzaj';
Width:=150;
end;
with ListView.Columns.Add do
begin
Caption:='Ilość';
Width:=150;
end;
ListView.Columns.EndUpdate;
//Pobranie informacji
ZeroMemory(@Status, sizeof(Status));
Status.dwLength:=sizeof(Status);
GlobalMemoryStatus(Status);
//Prezentacja informacji
DodajWpis('Użycie pamięci [%]', IntToStr(Status.dwMemoryLoad));
DodajWpis('Całkowita fizyczna [B]', IntToStr(Status.dwTotalPhys));
DodajWpis('Dostępna fizyczna [B]', IntToStr(Status.dwAvailPhys));
DodajWpis('Całkowita stronicowania [B]', IntToStr(Status.dwTotalPageFile));
DodajWpis('Dostępna stronicowania [B]', IntToStr(Status.dwAvailPageFile));
DodajWpis('Całkowita wirtualna [B]', IntToStr(Status.dwTotalVirtual));
DodajWpis('Dostępna wirtualna [B]', IntToStr(Status.dwAvailVirtual));
ListView.Items.EndUpdate;
end;
Ale to juz bylo... :) Jak pobrać ilość dostępnej pamięci systemu