vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: System/Windows · Sonstiges   |   VB-Versionen: VB5, VB617.12.07
RAM-Speicher via WMI ermitteln

Mit dieser Prozedur lässt sich der verfügbare und freie RAM-Speicher auch bei mehr als 2GB ermitteln.

Autor:   Dieter OtterBewertung:  Views:  22.228 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

In unserem Tipps & Tricks Bereich gibt es zwar schon einen Tipp, um die Größe des verfügbaren und freien Arbeitsspeichers zu ermitteln, jedoch funktioniert dieser nur bei einem Arbeitsspeicher bis 2 GB. Nachfolgender Code ermittelt die Größe des verfügbaren und freien RAM-Speichers mittels WMI und gibt auch für mehr als 2 GB RAM die korrekten Werte zurück.

' Verfügbaren und freien Arbeitsspeicher via WMI ermitteln
Public Sub GetRAMInfo(ByRef sTotal As String, ByRef sFree As String)
  On Error GoTo ErrHandler
 
  Dim oWMI As Object
  Dim oResult As Object
  Dim oItem As Object
  Dim sSQL As String
 
   ' Verweis auf WMI erstellen
  Set oWMI = GetObject("winmgmts:")
 
  ' WMI-Abfrage für den verfügbaren RAM  
  sSQL = "Select TotalPhysicalMemory from Win32_ComputerSystem"
  Set oResult = oWMI.ExecQuery(sSQL)
  For Each oItem In oResult
    sTotal = FormatRam(oItem.TotalPhysicalMemory)
    Exit For
  Next 
 
  ' WMI-Abfrage für den freien Arbeitsspeicher
  sSQL = "SELECT FreePhysicalMemory from Win32_OperatingSystem"
  Set oResult = oWMI.ExecQuery(sSQL)
  For Each oItem In oResult
    sFree = FormatRam(oItem.FreePhysicalMemory * 1024)
    Exit For
  Next 
  On Error GoTo 0
  Exit Sub
 
ErrHandler:
End Sub
' Hilfsfunktion zur Formatierung der ermittelten Bytes
' in KB, MB bzw. GB
Private Function FormatRam(ByVal oRam As Variant) As String
  ' RAM-Angabe formatieren
  If (((oRam / 1024) / 1024) / 1024) >= 1 Then
    ' GB
    FormatRam = Format(((oRam / 1024) / 1024) / 1024, "###,##0.0#") & " GB"
  ElseIf ((oRam / 1024) / 1024) >= 1 Then
    ' MB
    FormatRam = Format((oRam / 1024) / 1024, "###,##0.0#") & " MB"
  Else
    ' KB
    FormatRam = Format(oRam / 1024, "###,##0.0#") & " KB"
  End If
End Function

Aufrufbeispiel:

Dim sTotal As String
Dim sFree As String
 
' RAM-Info
GetRAMInfo sTotal, sFree
 
' Anzeige in Label-Controls
Label1.Caption = "Verfügbarer RAM: " & sTotal
Label2.Caption = "Freier RAM: " & sFree



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.