AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WMI: Refresh von Daten

Ein Thema von Profiler · begonnen am 27. Mär 2008 · letzter Beitrag vom 4. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
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
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: WMI: Refresh von Daten

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

schau mal hier..vielleicht wirst Du fuendig --> WMI Component
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Profiler

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

Re: WMI: Refresh von Daten

  Alt 27. Mär 2008, 20:06
Hallo,

danke für die rasche Antwort! Die MAGWMI uni habe ich schon versucht, die Funktionen dort geben mir auch nur die nicht aktuellen Werte zurück. Eine Refresher ist dort leider auch nicht verwendet wurden.
Hast du sonst noch eine Idee oder kann mir sonst noch jemand bei dem beschriebenen Problem helfen?

Gruß
Profiler
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: WMI: Refresh von Daten

  Alt 27. Mär 2008, 20:17
schau mal hier..vielleicht nen Ansatz CPU-Temp
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Profiler

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

Re: WMI: Refresh von Daten

  Alt 27. Mär 2008, 20:26
Ich habe bereits ein Tool geschrieben, was mir die Temperaturen aus dem Embedden Controller von IBM ThinkPad Notebooks auslesen kann, aber ich würde gerne noch das Auslesen per WMI hinbekommen. Das Auslesen funktioniert ja bereis, aber wenn ich mir die Temperaturen per WMI hole, dann sind die nicht aktuell, wenn ich diese mit denen aus dem EC oder von anderen Tools vergleiche. Ich muss also wissen, wie das mit dem Refresher funktioniert.

Gruß
Profiler

PS: Mein Tool findet ihr unter http://fancontrol.de/view
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: WMI: Refresh von Daten

  Alt 28. Mär 2008, 18:43
Hallo Profiler,

ich gehe mal davon aus, dass du die 'Microsoft WMI Scripting V1.2 Library' als Typlib verwendest.

In diesem guten Stück gibt es ISWbemRefresher, ISWbemRefresher und ISWbemObjectEx.

Gruß
  Mit Zitat antworten Zitat
Profiler

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

Re: WMI: Refresh von Daten

  Alt 29. Mär 2008, 03:38
Ja in dieser Annahme gehst du richtig. Ich weiss auch, dass es dort solche Refreshertypen und Interfaces gibt, aber ich bekomme es einfach nicht hin, vielleicht kannst du mir ein Beispiel zeigen, wie ich einen Wert refreshe?
Ein Objekt von ISWbemObjectEx sozusagen hat ja eine Refresh_(...) - Funktion, nur wie bekomme ich den WMI-Wert in solch ein Objekt? Ich finde nur Funktionen, die mir ein ISWbemObject zurückliefern, welche die Refresh_ - Funktion nicht implementiert

Gruß
Profiler
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: WMI: Refresh von Daten

  Alt 29. Mär 2008, 17:01
Hi Profiler,

liest du dir eigentlich Deine eigenen Beispiele durch?!
Steht doch alles drin, ist zwar VB, aber alles da.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: WMI: Refresh von Daten

  Alt 29. Mär 2008, 17:13
Zitat von Alter Mann:
Hi Profiler,

liest du dir eigentlich Deine eigenen Beispiele durch?!
Steht doch alles drin, ist zwar VB, aber alles da.

Gruß
Hallo,
er wollte ja auch eine Hilfe zur Umstellung von VB nach Delphi!!
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Profiler

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

Re: WMI: Refresh von Daten

  Alt 29. Mär 2008, 19:15
Hi Der.Kaktus,

genauso sieht es aus! Das Beispiel ist direkt aus der MSDN und wird so wohl auch funktionieren, aber ich bekomme es nicht in Delphi umgesetzt, dabei bräuchte ich eure Hilfe!

Gruß
Profiler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz