15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как определить количество свободной памяти.

Автор: John Percival

Довольно легко сделать это при помощи API функции GlobalMemoryStatus. Вставьте следующий код в секцию объявлений модуля:

Public Type MEMORYSTATUS 
dwLength As Long 
dwMemoryLoad As Long 
dwTotalPhys As Long 
dwAvailPhys As Long 
dwTotalPageFile As Long 
dwAvailPageFile As Long 
dwTotalVirtual As Long 
dwAvailVirtual As Long
End TypePublic Declare Sub GlobalMemoryStatus _
Lib "kernel32" (lpBuffer As MEMORYSTATUS)

 

Теперь, для получения нужных нам значений, необходимо добавить следующий код:

Dim MS As MEMORYSTATUS 
MS.dwLength = Len(MS) 
GlobalMemoryStatus MS

'MS.dwMemoryLoad содержит процент используемой памяти
'MS.dwTotalPhys содержит общее кол-во физической памяти в байтах
'MS.dwAvailPhys содержит кол-во свободной физической памяти
'MS.dwTotalPageFile содержит общее кол-во памяти в страничном файле
'MS.dwAvailPageFile содержит кол-во свободной памяти в страничном файле
'MS.dwTotalVirtual содержит общее кол-во виртуальной памяти
'MS.dwAvailVirtual содержит кол-во свободной виртуальной памяти