Basic Univers

; PB4.0 - Compatible ASCII/UNICODE.
;-
;- Descript.  Etat de la mémoire physique, paginée et virtuelle.
;- Compiler:  PureBasic 4.0 (Quad et Ascii/Unicode supporté).
;-


Import "shlwapi.lib"
  StrFormatByteSize64A(Size.q, *BufStr, BufSize.l)
EndImport

Procedure.s StrFormatByteSize(Size.q)
  Protected BufStr.s = Space(255)
  If StrFormatByteSize64A(Size, @BufStr, 255)
    ProcedureReturn PeekS(@BufStr, - 1, #PB_Ascii)
  EndIf
EndProcedure

Define MemoireInfo.MEMORYSTATUSEX\dwLength = SizeOf(MEMORYSTATUSEX)

If GlobalMemoryStatusEx_(MemoireInfo)
  With MemoireInfo
    Debug ""
    Debug "Mémoire Physique"
    Debug "Total: "      + StrFormatByteSize(\ullTotalPhys)
    Debug "Disponible: " + StrFormatByteSize(\ullAvailPhys)
    Debug "Utilisée: "   + StrFormatByteSize(\ullTotalPhys - \ullAvailPhys)
    Debug ""
    Debug "Mémoire Paginée"
    Debug "Total: "      + StrFormatByteSize(\ullTotalPageFile)
    Debug "Disponible: " + StrFormatByteSize(\ullAvailPageFile)
    Debug "Utilisée: "   + StrFormatByteSize(\ullTotalPageFile - \ullAvailPageFile)
    Debug ""
    Debug "Mémoire Virtuelle"
    Debug "Total: "      + StrFormatByteSize(\ullTotalVirtual)
    Debug "Disponible: " + StrFormatByteSize(\ullAvailVirtual)
    Debug "Utilisée: "   + StrFormatByteSize(\ullTotalVirtual - \ullAvailVirtual)
    Debug ""
    Debug "Mémoire Etendue: "
    Debug "Disponible: " + StrFormatByteSize(\ullAvailExtendedVirtual)
    Debug ""
  EndWith
EndIf