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
Gausi: 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 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', '', '', '','', 0, nil); 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) - 2732) div 10; CPUTemperature1.caption := IntToStr(cputemp) + ' °C' end else CPUTemperature1.Caption := 'ERROR'; end; |
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.
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
Tino: Code-Tags hinzugefügt.
Delete - Mo 06.08.07 21:03
kennwort999 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
hathor hat folgendes geschrieben: |
kennwort999 hat folgendes geschrieben: | Hallo was mache ich falsch ?
|
Funktioniert das unveränderte Originalprogramm?
MSAcpi_ThermalZoneTemperature_C.vbs |
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 !
***********************************************************************
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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!