Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как получить размер физической установленной памяти?

Delphi , ОС и Железо , Windows

 пример 1

Code:

uses
Windows, SysUtils;
 
function DisplayRam: string;
var
Info: TMemoryStatus;
begin
Info.dwLength := SizeOf(TMemoryStatus);
GlobalMemoryStatus(Info);
Result := Format('%d MB RAM', [(Info.dwTotalPhys shr 20) + 1]);
end;

 пример 2

Code:

function Physmem: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwTotalPhys div 1024);
end;
 
function PhysmemFree: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwAvailPhys div 1024);
end;
 
function MemLoad: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwMemoryLoad);
end;
 
function TotalPageFile: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwTotalPageFile div 1024);
end;
 
function AvailPageFile: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwAvailPageFile div 1024);
end;
 
function VirTotPageFile: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwTotalVirtual div 1024);
end;
 
function AvailVir: string;
var
MemStat: TMemoryStatus;
begin
MemStat.dwLength := sizeof(MemStat);
GlobalMemoryStatus(MemStat);
result := inttoStr(memstat.dwAvailVirtual div 1024);
end;

 пример 3

Code:

uses
Windows;
 
function TMyApp.GlobalMemoryStatus(Index: Integer): Integer;
var
MemoryStatus: TMemoryStatus
begin
with MemoryStatus do
begin
   dwLength := SizeOf(TMemoryStatus);
   Windows.GlobalMemoryStatus(MemoryStatus);
   case Index of
     1: Result := dwMemoryLoad;
     2: Result := dwTotalPhys div 1024;
     3: Result := dwAvailPhys div 1024;
     4: Result := dwTotalPageFile div 1024;
     5: Result := dwAvailPageFile div 1024;
     6: Result := dwTotalVirtual div 1024;
     7: Result := dwAvailVirtual div 1024;
   else
     Result := 0;
   end;
end;
end;
Взято с Delphi Knowledge Base: http://www.baltsoft.com/

Вы спрашиваете, как получить размер физически установленной памяти в Delphi.

Все три примера, которые я предоставил, корректно выполняют эту задачу, но я дам краткое резюме и некоторые дополнительные комментарии для каждого из них:

Пример 1

function DisplayRam: string;
var
  Info: TMemoryStatus;
begin
  Info.dwLength  := SizeOf(TMemoryStatus);
  GlobalMemoryStatus(Info);
  Result  := Format('%d MB RAM', [(Info.dwTotalPhys shr 20) + 1]);
end;

Функция использует функцию GlobalMemoryStatus для получения статуса памяти, а затем форматирует строку с размером физической памяти (в МБ).

Пример 2

function Physmem: string;
var
  MemStat: TMemoryStatus;
begin
  MemStat.dwLength  := sizeof(MemStat);
  GlobalMemoryStatus(MemStat);
  Result := IntToStr(MemStat.dwTotalPhys div 1024);
end;

...

Этот пример имеет несколько функций, которые получают различные статистики памяти, включая размер физической памяти (в МБ).

Пример 3

function TMyApp.GlobalMemoryStatus(Index: Integer): Integer;
var
  MemoryStatus: TMemoryStatus;
begin
  with MemoryStatus do
  begin
    dwLength  := SizeOf(TMemoryStatus);
    Windows.GlobalMemoryStatus(MemoryStatus);
    case Index of
      1: Result  := dwMemoryLoad;  // процент загрузки памяти
      2: Result  := dwTotalPhys div 1024;  // размер физической памяти (в МБ)
      3: Result  := dwAvailPhys div 1024;  // доступная физическая память (в МБ)
       ...
    end;
  end;
end;

Этот пример определяет метод, который принимает индекс в качестве входного параметра и возвращает соответствующую статистику памяти. Функция GlobalMemoryStatus используется для получения статуса памяти, а затем запрошенная статистика возвращается.

В целом, все три примера используют функцию GlobalMemoryStatus для получения статистик памяти, а затем форматируют или конвертируют результаты в строку, представляющую размер физически установленной памяти (в МБ).

Надеюсь, это поможет! Пожалуйста, дайте мне знать, если у вас есть какие-либо дополнительные вопросы.

Получить размер физической установленной памяти можно с помощью функции GlobalMemoryStatus из библиотеки Windows, которая возвращает структуру TMemoryStatus, содержащую информацию о состоянии памяти.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 15:31:16/0.011529922485352/0