Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0008: Speicherauslastung abfragen

 von 

Beschreibung 

Mit diesen wenigen Befehlen lässt sich aktuelle Speicherauslastung des Rechners erfahren.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

GlobalMemoryStatus

Download:

Download des Beispielprojektes [2,12 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Projekt1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Beschriftungsfeld "Label1"

Option Explicit

'Deklaration: Globale Form API-Typen
Private 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 Long
End Type

'Deklaration: Globale Form API-Funktionen
Private Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS)

Private Sub Form_Load()
    'Deklaration: Lokale Prozedur-Variablen
    Dim strText As String

    Dim udtMem As MEMORYSTATUS

    GlobalMemoryStatus udtMem

    With udtMem
        strText = strText & "Speicher belegt in Prozent : " & _
            Format$(.dwMemoryLoad, "@@@@@@@@@@@") & vbCrLf & vbCrLf

        strText = strText & "Totaler physischer Speicher : " & _
            Format$(.dwTotalPhys, "@@@@@@@@@@@") & vbCrLf

        strText = strText & "Davon noch frei : " & _
            Format$(.dwAvailPhys, "@@@@@@@@@@@") & vbCrLf & vbCrLf

        strText = strText & "Bytes in gepageten Dateien :  " & _
            Format$(.dwTotalPageFile, "@@@@@@@@@@@") & vbCrLf

        strText = strText & "Davon noch frei : " & _
            Format$(.dwAvailPageFile, "@@@@@@@@@@@") & vbCrLf & vbCrLf

        strText = strText & "Totaler virtueller Speicher : " & _
            Format$(.dwTotalVirtual, "@@@@@@@@@@@") & vbCrLf

        strText = strText & "Davon noch frei : " & _
            Format$(.dwAvailVirtual, "@@@@@@@@@@@") & vbCrLf
    End With

    Label1.Caption = strText
End Sub


'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Projekt1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 8 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Florian Rittmeier am 18.12.2005 um 23:58

Hallo Michael,

stell deine Frage bitte im VB-Forum.

Gruß Florian

Kommentar von Michael am 18.12.2005 um 03:35

Wie kann ich es mit Timer machen, das die werte in Interval =5 Aktualisiert wird?

Das wäre gut :-D

Ich danke im vorraus

Kommentar von Küspert am 21.10.2005 um 14:47

Viellen herzlichen Dank,
ich habe das in VBA Office 95 übenommen, es funktioniert!!!

Kommentar von diskjuggler am 15.01.2004 um 16:22

Unter Windows 98 (VB6) zeigt dwAvailVirtual immer 2 GB an, nicht den
noch verfügbaren Speicher. Es sieht so aus, als würde die Summe aus dwAvailPhys und dwAvailPageFile eher der Realität entsprechen (mit Systemmonitor grob abgeschätzt).
Übrigens ist die Hilfe zur erscheinenden Fehlermeldung, wenn man mehr Speicher als vorhanden zur Laufzeit (z.B. redim) reservieren will, völlig schwachsinnig: es ist von 64KB-Blöcken und TSR-Programmen die Rede. Das gab es nur bei DOS.





Kommentar von Florian Rittmeier am 11.11.2003 um 15:26

Hallo tango,

die Beschreibungen der Funktionen findest Du in der Microsoft Developers Network Library (MSDN Library).

http://msdn.microsoft.com/

Gruß Florian

Kommentar von tango am 11.11.2003 um 13:54

gute Site, echt
mich interessiert wie ich an die diversen
Funktions-Beschreibungen einer dll komme
damit ich weis was es macht befor ich es aufrufe

Kommentar von Florian Rittmeier am 13.03.2003 um 11:35

Hallo Peter,
bei Windows NT bezieht sich die Angabe des dwMemoryLoad Mitglieds nur auf die letzten 1000 Seiten (ungefähr) des physischen Speichers.

MfG Florian

Kommentar von Wicht am 23.10.2001 um 11:04

MemoryLoad zeigt unter NT4 immer 0 an, unter WIN95 die (korrekte) Auslastung. Bug or Feature ?