Show Free Memory Under Win32

Show Free Memory Under Win32

If you want to show your users the available memory on the machine, and you’re moving from 16 bits to 32bits, you’ll find the API function GetFreeSystemResources has been dropped. You can still do it in VB4/32and VB5, though. You need to declare the API function and this type in a module:

 Declare Sub GlobalMemoryStatus Lib _        "kernel32" (lpBuffer As _        MEMORYSTATUS)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 LongEnd Type

Fill the dwlength field with the MEMORYSTATUS type size. Long variables take four bytes, so the totalsize is 4*8=32 bytes:

 Dim ms As MEMORYSTATUSms.dwLength = Len(ms)GlobalMemoryStatus msMsgBox "Total physical memory:" & _        ms.dwTotalPhys & vbCr _        & "Available physical memory:" & _        ms.dwAvailPhys & vbCr & _        "Memory load:" & ms.dwMemoryLoad

You could also create a class to encapsulate this.


Share the Post: