Thema: Delphi WMI: Refresh von Daten

Einzelnen Beitrag anzeigen

Profiler

Registriert seit: 30. Dez 2006
14 Beiträge
 
#1

WMI: Refresh von Daten

  Alt 27. Mär 2008, 19:14
Hallo,

ich möchte gern die Temperatur des Prozessors per WMI bekommen, was auch bereits funktioniert, nur sind die Daten veraltet. Ich habe in der MSDN ein bisschen rumgelesen und erfahren, dass es eine Refresh-Funktion gibt. Dort ist auch ein Beispielcode beschrieben, aber ich bekomme ihn nicht in Delphi umgesetzt. Könnt ihr mir dabei Helfen?

Hier der Beispielcode:
Code:
 ' Get namespace connections
set objServicesCimv2 = GetObject("winmgmts:root\cimv2")
set objServicesDefault = GetObject("winmgmts:root\default")

' Create a refresher object
set objRefresher = CreateObject("WbemScripting.SWbemRefresher")

' Add a single object (SWbemObjectEx) to the refresher. The "@"
' is used because _CIMOMIdentification is a singleton class- only
' one instance exists. Note that the
' SWbemRefreshableItem.Object property must
' be specified or the SWbemRefresher.Refresh call will fail.

set objRefreshableItem1 = objRefresher. _
    Add (objServicesDefault, "__CIMOMIdentification=@").Object

' Add an enumerator (SWbemObjectSet object)
' to the refresher. Note that the
' SWbemRefreshableItem.ObjectSet property
' must be specified or the SWbemRefresher.Refresh call will fail.
set objRefreshableItem2 = objRefresher. _
    AddEnum (objServicesCimv2, "Win32_Process").ObjectSet

' Display number of items in refresher and update the data.
MsgBox "Number of items in refresher = " & objRefresher.Count
objRefresher.Refresh

' Iterate through the refresher. SWbemRefreshable
' Item.IsSet checks for whether the item is an enumerator.
for each RefreshableItem in objRefresher
 if RefreshableItem.IsSet then
    MsgBox "Item with index " & RefreshableItem.Index &_
    " is an enumerator containing "_
    & RefreshableItem.ObjectSet.Count & " processes"
 else
      MsgBox "Item with index " & RefreshableItem.Index _
          & " is a single object containing WMI version "_
          & objRefreshableItem1.VersionCurrentlyRunning
 end if
next
Wie muss dieses Beispiel in Delphi umgesetzt werden?

Gruß
Profiler
  Mit Zitat antworten Zitat