• Страница 1 из 1
  • 1
Получение статуса памяти
Отправлено 2015-06-14 - 5:15 PM1
Администраторы
332 сообщений
Мужчина
Цитата
function BitToKB(bytes: Int64): string;
begin
if bytes < 1024 then
Result := IntToStr(bytes) + ' B'
else if bytes < 1048576 then
Result := FloatToStrF(bytes / 1024, ffFixed, 10, 1) + ' Kb'
else if bytes < 1073741824 then
Result := FloatToStrF(bytes / 1048576, ffFixed, 10, 1) + ' Mb'
else if bytes > 1073741824 then
Result := FloatToStrF(bytes / 1073741824, ffFixed, 10, 1) + ' Gb';
end;

function MemoryStatus( iInput : Integer ):string;
type
DWORDLONG = UInt64;

PMemoryStatusEx = ^TMemoryStatusEx;
TMemoryStatusEx = packed record
dwLength: DWORD;
dwMemoryLoad: DWORD;
ullTotalPhys: DWORDLONG;
ullAvailPhys: DWORDLONG;
ullTotalPageFile: DWORDLONG;
ullAvailPageFile: DWORDLONG;
ullTotalVirtual: DWORDLONG;
ullAvailVirtual: DWORDLONG;
ullAvailExtendedVirtual: DWORDLONG;
end;
var
MemStatus: TMemoryStatusEx;

hKernel32 : Cardinal;
GlobalMemoryStatusEx: function(var lpBuffer: TMemoryStatusEx): BOOL; stdcall;// external kernel32;

begin
hKernel32 := GetModuleHandle('Kernel32.dll');
@GlobalMemoryStatusEx := GetProcAddress( hKernel32, 'GlobalMemoryStatusEx');

FillChar(MemStatus, SizeOf(MemStatus), 0);
MemStatus.dwLength := SizeOf(MemStatus);
GlobalMemoryStatusEx(MemStatus);

Case iInput of
1: Result := 'Length: ' + BitToKB(MemStatus.dwLength);
2: Result := 'Memory Load: ' + BitToKB(MemStatus.dwMemoryLoad);
3: Result := 'Total: ' + BitToKB(MemStatus.ullTotalPhys);
4: Result := 'Available: ' + BitToKB(MemStatus.ullAvailPhys);
5: Result := 'Total Page File: ' + BitToKB(MemStatus.ullTotalPageFile);
6: Result := 'Avail Page File: ' + BitToKB(MemStatus.ullAvailPageFile);
7: Result := 'Total Virtual: ' + BitToKB(MemStatus.ullTotalVirtual);
8: Result := 'Avail Virtual: ' + BitToKB(MemStatus.ullAvailVirtual);
9: Result := 'Avail Extended Virtual: ' + BitToKB(MemStatus.ullAvailExtendedVirtual);
end;

end;


Использование:
Цитата
Label1.Caption := MemoryStatus(3); // Общее количество памяти
Профиль Личное сообщение Дом. страница icq Skype
  • Страница 1 из 1
  • 1
Поиск:
Коротко о сайте...
Вся информация на сайте
предоставлена в ознакомительных целях.
Счетчики
Sitemap
Sitemap-Forum
URL List
RSS
RSS-Forum
Подняться вверх
Все права защищены.Сделать бесплатный сайт с uCoz