vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
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:     [ Jetzt bewerten ]Views:  22.185 
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

Dieser Tipp wurde bereits 22.185 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel