As Long dwLength
, dwMemoryLoad
As Unsigned Integer64 ullTotalPhys
, ullAvailPhys
, ullTotalPageFile
, ullAvailPageFile
, ullTotalVirtual
, ullAvailVirtual
, ullAvailExtendedVirtual
As Long dwLowDateTime
, dwHighDateTime
Print "Total Physical Memory: " Print Using " ####################, bytes"; TotalPhysicalMem
Print "Free Physical Memory: " Print Using " ####################, bytes"; FreePhysicalMem
Print "Total Paging File: " Print Using " ####################, bytes"; TotalPagingFile
Print "Free Paging File: " Print Using " ####################, bytes"; FreePagingFile
Print "Total Virtual Memory: " Print Using " ####################, bytes"; TotalVirtualMem
Print "Free Virtual Memory:" Print Using " ####################, bytes"; FreeVirtualMem
Print "Free Extended Virtual Memory:" Print Using " ####################, bytes"; FreeExtendedMem
Dim As MEMORYSTATUSEX statex
statex.dwLength
= Len(statex
) GlobalMemoryStatus
Offset(statex
) MemInUsePercent = statex.dwMemoryLoad
Dim As MEMORYSTATUSEX statex
statex.dwLength
= Len(statex
) GlobalMemoryStatus
Offset(statex
) TotalPhysicalMem = statex.ullTotalPhys
Dim As MEMORYSTATUSEX statex
statex.dwLength
= Len(statex
) GlobalMemoryStatus
Offset(statex
) FreePhysicalMem = statex.ullAvailPhys
Dim As MEMORYSTATUSEX statex
statex.dwLength
= Len(statex
) GlobalMemoryStatus
Offset(statex
) TotalPagingFile = statex.ullTotalPageFile
Dim As MEMORYSTATUSEX statex
statex.dwLength
= Len(statex
) GlobalMemoryStatus
Offset(statex
) FreePagingFile = statex.ullAvailPageFile
Dim As MEMORYSTATUSEX statex
statex.dwLength
= Len(statex
) GlobalMemoryStatus
Offset(statex
) TotalVirtualMem = statex.ullTotalVirtual
Dim As MEMORYSTATUSEX statex
statex.dwLength
= Len(statex
) GlobalMemoryStatus
Offset(statex
) FreeVirtualMem = statex.ullAvailVirtual
Dim As MEMORYSTATUSEX statex
statex.dwLength
= Len(statex
) GlobalMemoryStatus
Offset(statex
) FreeExtendedMem = statex.ullAvailExtendedVirtual
totalTicksSinceLastTime = totalTicks - previousTotalTicks
idleTicksSinceLastTime = idleTicks - previousIdleTicks
ret = 1.0
If totalTicksSinceLastTime
> 0 Then If 1.0 - (idleTicksSinceLastTime
/ totalTicksSinceLastTime
) >= 0 Then ret = 1.0 - (idleTicksSinceLastTime / totalTicksSinceLastTime)
previousTotalTicks = totalTicks
previousIdleTicks = idleTicks
CalculateCPULoad = ret
FileTimeToInt64
= SHL(ft.dwHighDateTime
, 32) Or ft.dwLowDateTime
Dim As FILETIME idleTime
, kernelTime
, userTime
GetCPULoad = CalculateCPULoad(FileTimeToInt64(idleTime), FileTimeToInt64(kernelTime) + FileTimeToInt64(userTime))
GetCPULoad = -1.0