Entwickler-Ecke

Windows API - CPU Temperatur auslesen suche Projekt Beispiel Delphi o. VB


kennwort999 - Fr 03.08.07 21:01
Titel: CPU Temperatur auslesen suche Projekt Beispiel Delphi o. VB
Jemand eine Idee oder kann helfen, möchte die CPU Temperatur auslesen!

Folgende in VB ist schon mal möglich,,,, nur die Temperatur nicht ???


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
pc = "."
li = "Prozessorinfos:" & vbcr
Set wmi = GetObject("winmgmts:\\" & pc & "\root\cimv2")
Set col = wmi.ExecQuery("Select * from Win32_Processor",,48)
For Each obj in col
li = li & "Rechnername: " & obj.SystemName & vbcr 
li = li & "Modell: " & obj.Name & vbcr
li = li & "ID: " & obj.ProcessorId & vbcr
li = li & "Version: " & obj.Version & vbcr 
li = li & "Revision: " & obj.Revision & vbcr
li = li & "Kennzeichnung: " & obj.SocketDesignation & vbcr
li = li & "Typ: " & obj.role & vbcr
li = li & "Mhz: " & obj.CurrentClockSpeed & vbcr
li = li & "max. Mhz: " & obj.MaxClockSpeed & vbcr
li = li & "Beschreibung: " & obj.Description & " / " & obj.Caption & vbcr
li = li & "Hersteller: " & obj.Manufacturer & vbcr
Next
MsgBox (li)




MEINE IDEE WAR:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
pc = "."
li = "Prozessorinfos:" & vbcr
Set wmi = GetObject("winmgmts:\\" & pc & "\root\cimv2")
Set col = wmi.ExecQuery("Select * from Win32_Processor",,48)
For Each obj in col
li = li & "CPUTemperatur: " & obj.GetCPUTemperature & vbcr 
Next
MsgBox (li)



komme da einfach nicht weiter!

LG kennwort999

Moderiert von user profile iconGausi: Code-Tags hinzugefügt


BenBE - Fr 03.08.07 21:08

Bitte benutzte die Forensuche, die liefert Dir zum Thema CPU-Temperatur einige Hinweise.

Ansonsten wäre es von Vorteil, wenn Du Quelltexte mit Code-Tags kennzeichnen könntest, da diese dadurch wesentlich besser lesbar werden.


Delete - Fr 03.08.07 21:15


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
uses
  .... Activex, WbemScripting_TLB;


function GetWMIstring2 (wmiHost, wmiClass, wmiProperty : string):string;
var  // These are all needed for the WMI querying process
  Locator:  ISWbemLocator;
  Services: ISWbemServices;
  SObject:  ISWbemObject;
  ObjSet:   ISWbemObjectSet;
  SProp:    ISWbemProperty;
  Enum:     IEnumVariant;
  Value:    Cardinal;
  TempObj:  OleVariant;
  SN: string;
begin
  try
  Locator := CoSWbemLocator.Create;
   Services :=  Locator.ConnectServer(wmiHost, 'root\wmi''''''',''0nil);
  ObjSet := Services.ExecQuery('SELECT * FROM '+wmiClass, 'WQL',
    wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
  Enum :=  (ObjSet._NewEnum) as IEnumVariant;
  while (Enum.Next(1, TempObj, Value) = S_OK) do
  begin
    SObject := IUnknown(tempObj) as ISWBemObject;
    SProp := SObject.Properties_.Item(wmiProperty, 0);
    if VarIsNull(SProp.Get_Value) then
      result := ''
    else
    begin
      SN := SProp.Get_Value;
      result :=  SN;
    end;
  end;
  except
   on exception do
    result := '';
   end;
end;


procedure TForm1.WMIdata(Sender: TObject);
var tmpstr : string;   cputemp : Integer;
begin
tmpstr := getWMIstring2('','MSAcpi_ThermalZoneTemperature','CurrentTemperature');
  if tmpstr <> '' then         
  Begin
    cputemp:= (StrToInt(tmpstr) - 2732div 10;
    CPUTemperature1.caption := IntToStr(cputemp) + ' °C'
  end else
    CPUTemperature1.Caption := 'ERROR';
end;


Delete - Fr 03.08.07 21:27

Für AMD-Prozessoren der K8-Klasse - Single Core und Duo Core, incl. Source code:

Info:

http://www.thecoolest.zerobrains.com/CoreTemp/howitworks.html


kennwort999 - Sa 04.08.07 20:51

Hallo hathor

Hallo einen schönen Gruss nach Berlin,

ich Danke Dir für Dein Beipiel, es gab einen kleinen Einblick! Big Thx

Leider erhalte ich immer wieder Fehlermeldung und da ich neu bin so zu sagen,
kann ich nicht machen! Gibt es irgend wie ein Projekt das ich mal laden könnte?

Hier im Forum bin ich leider seit mehreren Wochen auch nicht pfündig geworden,
alles war nur andeutungsweise für mich da Anfänger!

Kannst DU da helfen ?

LG Ken


Delete - Sa 04.08.07 22:18

Aber gerne:


kennwort999 - Mo 06.08.07 14:59

Hallo hathor,

Big Thx erst mal.

Leider zeigt bei immer die Fehlermeldung " CPU-Temp-Error " und ...
Im Projekt Wmitemp.exe Exception der Klasse EoleException mit der Meldung " Wird nicht unterstützt "

ObjSet := Services.ExecQuery('SELECT * FROM '+wmiClass, 'WQL',

Was auch immer das heist !??

LG Ken

P.S. Mein System Borland Delphi : Borland® Delphi® für Microsoft® Windows™ Version 10.0.2288.00000 Update 2


Raffo - Mo 06.08.07 15:52

Ja genau, ich hätte mich auch gerne dafür interssiert, aber bei mir kommt auch CPU-Temp Error.


Delete - Mo 06.08.07 18:10

Das ist sicher ein Problem des Betriebssystems bzw. von WMI:

WMI-Diagnoseprogramm
Beschreibung:
http://www.microsoft.com/germany/technet/scriptcenter/topics/help/wmidiag.mspx

Download:
http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=d7ba3cd6-18d1-4d05-b11e-4c64192ae97d&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2fd%2fa%2f5da164b9-95ef-4886-bf7c-04459cb6857a%2fWMIDiag.exe

Bitte bei Fehlermeldungen IMMER Betriebssystem angeben!


kennwort999 - Mo 06.08.07 20:27

Hallo was mache ich falsch ?

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

strComputer = "."

   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
   Set col = objWMIService.ExecQuery("SELECT * FROM MSAcpi_ThermalZoneTemperature", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

   For Each obj in col
li = li &  "Active: " & objItem.Active
      strActiveTripPoint = Join(objItem.ActiveTripPoint, ",") & vbcr
li = li &  "ActiveTripPoint: " & strActiveTripPoint & vbcr
li = li &  "ActiveTripPointCount: " & objItem.ActiveTripPointCount & vbcr
li = li &  "CriticalTripPoint: " & objItem.CriticalTripPoint v
li = li &  "CurrentTemperature CPU: " & (objItem.CurrentTemperature - 2732) / 10 & " °C" & vbcr
li = li &  "InstanceName: " & objItem.InstanceName & vbcr
li = li &  "PassiveTripPoint: " & objItem.PassiveTripPoint & vbcr
li = li &  "Reserved: " & objItem.Reserved & vbcr
li = li &  "SamplingPeriod: " & objItem.SamplingPeriod & vbcr
li = li &  "ThermalConstant1: " & objItem.ThermalConstant1 & vbcr
li = li &  "ThermalConstant2: " & objItem.ThermalConstant2 & vbcr
li = li &  "ThermalStamp: " & objItem.ThermalStamp & vbcr
next
MsgBox (li)


sollte doch jetzt eine Meldung geben oder ???

Moderiert von user profile iconTino: Code-Tags hinzugefügt.


Delete - Mo 06.08.07 21:03

user profile iconkennwort999 hat folgendes geschrieben:
Hallo was mache ich falsch ?



Funktioniert das unveränderte Originalprogramm?
MSAcpi_ThermalZoneTemperature_C.vbs


kennwort999 - Mo 06.08.07 21:45

Hallo, nein das funzt auch net, leider !
weis nicht warum !

LG Chris


user profile iconhathor hat folgendes geschrieben:
user profile iconkennwort999 hat folgendes geschrieben:
Hallo was mache ich falsch ?



Funktioniert das unveränderte Originalprogramm?
MSAcpi_ThermalZoneTemperature_C.vbs


Delete - Mo 06.08.07 21:51

WMI-Diagnoseprogramm
Beschreibung:
http://www.microsoft.com/ge...cs/help/wmidiag.mspx

Download:
http://www.microsoft.com/do...b6857a%2fWMIDiag.exe

Bitte bei Fehlermeldungen IMMER Betriebssystem angeben!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


kennwort999 - Mo 06.08.07 22:24

Hallo beim starten von WMIDiag.exe kommt eine Systemmeldung :

Skriptmodul "VBScript" für Script "C:\WMIDiag.vbs" wurde nicht gefunden.

Mein Betriebssystem ist Win Prof Media !

***********************************************************************


user profile iconhathor hat folgendes geschrieben:
WMI-Diagnoseprogramm
Beschreibung:
http://www.microsoft.com/ge...cs/help/wmidiag.mspx

Download:
http://www.microsoft.com/do...b6857a%2fWMIDiag.exe

Bitte bei Fehlermeldungen IMMER Betriebssystem angeben!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Delete - Mo 06.08.07 22:31

Installation:
Windows Script 5.6 for Windows XP and Windows 2000

http://www.microsoft.com/downloads/details.aspx?familyid=C717D943-7E4B-4622-86EB-95A22B832CAA&displaylang=en


kennwort999 - Mo 06.08.07 23:59

Hallo, selbst die anderen Programme Borland Delphi etc.. alles läuft nicht mehr...
vielleicht ein VIR.. beim scripte laden geholt ... aber wo ??? Werde das System neu machen! Bis bald !!


kennwort999 - Di 07.08.07 19:07

Hallo alles geht wieder!

Dein Beispiel Script läuft scheinbar, nur mir wird nichts angezeigt!

kann es sein das ich einen Dienst oder Service nicht am PC Besitze ?
MSAcpi_ThermalZoneTemperature zum Beipiel !

Ich möchte es als MSG Meldung haben, bekomme das nicht hin!

LG Ken