Forum: PC-Programmierung VB6 WMI Daten löschen - Speicher läuft voll


von kein_guter_nic_mehr_frei (Gast)


Lesenswert?

Hallo,

ich hole mir über die WMI ein paar Systemdaten die von Everest 
geschrieben werden. Da dieses Programm manchmal etwas 'schusselt' lösche 
ich die Daten vor dem Auslesen. Dabei läuft mein Speicher voll. Beim 
Takt von einer Sekunde kommen in 1,5min ca. 1MB zusammen.

Hier mein 'Konstrukt', aber nicht lachen, ich bin Anfänger.
1
Public Function getWert(ByVal Name As String) As Integer
2
    Dim objSensor As Object
3
    getWert = 0
4
    On Error GoTo ende
5
    Set objSensor = GetObject("winmgmts:\\.\Root\WMI").Get( _
6
      "EVEREST_SensorValues.ID='" & Name & "'")
7
    getWert = objSensor.Value
8
    objSensor.Delete_
9
ende:
10
End Function

Wenn ich das Löschen rausnehme ist alles fein. Leider stehen nach dem 
Beenden von Everest die Werte immer noch in der WMI. 'objSensor = 
Nothing' bringt auch nichts.

Wie kann ich mir denn in VB6 die Speichergrösse einer Variablen zur 
Laufzeit anzeigen lassen?

Bin für jeden Tip dankbar
schönen Sonntag noch
bernd

von Z8 (Gast)


Lesenswert?

Hallo Bernd! :)

nimm mal "On Error GoTo ende" und sagmal was zur Fehlernummer,
wenn Du einen gültigen Namen verwendest!
Ich möchte wetten das die Zeile "objSensor.Delete_" einen Error erzeugt.

von Sven P. (Gast)


Lesenswert?

kein_guter_nic_mehr_frei wrote:
> 'objSensor = Nothing' bringt auch nichts.
Probiers  mal mit 'SET objSensor = Nothing'. Den Sinn hinter 'Set' hab 
ich aber auch bis heute nicht gefunden.

von Z8 (Gast)


Lesenswert?

... hat auch keinen! Nachdem die Sub verlassen wurde, ist das Objekt
    ungültig -> nicht mehr existent, da es lokal definiert wurde.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.