Discussion:
Wie kann ich CPU-Temperatur auslesen?
(zu alt für eine Antwort)
Stefan
2005-02-21 08:05:02 UTC
Permalink
Hallo allerseits!

Ich will gerade ein Programm schreiben, dass mir die CPU-Temperatur
ausliest. Ich habe nun schon im Internet gesucht und diesen Code gefunden:

private void GetTemperature()
{
SelectQuery myQuery = new SelectQuery("SELECT * from " +
"Win32_TemperatureProbe");
ManagementObjectSearcher mySearcher =
new ManagementObjectSearcher(myQuery);

foreach (ManagementBaseObject obj in mySearcher.Get())
{
//MessageBox.Show(("Temp: " + obj["CurrentReading"]));
this.TemperatureLabel.Text = obj["CurrentReading"];
}
mySearcher.Dispose();
}

Leider funktioniert dieser nicht, da das Statement "SELECT * from
Win32_TemperatureProbe" nichts zurück gibt.
Hat vielleicht jemand schon mal das gleiche Problem gehabt oder eine Idee
wie ich das lösen könnte??

Danke Stefan
Thomas Scheidegger [MVP]
2005-02-21 08:22:17 UTC
Permalink
Hallo Stefan
Post by Stefan
Ich will gerade ein Programm schreiben, dass mir die CPU-Temperatur
SelectQuery myQuery = new SelectQuery("SELECT * from " +
"Win32_TemperatureProbe");
Dies ist WMI,
und Ursache somit weitgehend 'ausserhalb' von .NET.

Für Win32_TemperatureProbe ist vom Mainboard-Hersteller
wohl typ. ein spezifischer WMI-Provider nötig (was wohl eher selten ist).

http://www.google.de/groups?q=Win32_TemperatureProbe
--
Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/
Stefan
2005-02-21 10:19:03 UTC
Permalink
Eine art direkter Zugriff ist wohl nicht möglich? Oder gibt es vieleicht eine
Art Sandart von Itel oder AMD?
Post by Thomas Scheidegger [MVP]
Hallo Stefan
Post by Stefan
Ich will gerade ein Programm schreiben, dass mir die CPU-Temperatur
SelectQuery myQuery = new SelectQuery("SELECT * from " +
"Win32_TemperatureProbe");
Dies ist WMI,
und Ursache somit weitgehend 'ausserhalb' von .NET.
Für Win32_TemperatureProbe ist vom Mainboard-Hersteller
wohl typ. ein spezifischer WMI-Provider nötig (was wohl eher selten ist).
http://www.google.de/groups?q=Win32_TemperatureProbe
--
Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/
Thomas Scheidegger [MVP]
2005-02-21 12:21:12 UTC
Permalink
Post by Stefan
Eine art direkter Zugriff ist wohl nicht möglich?
mit .NET sowieso nicht,
und ab NT/2000/XP+ auch mit C++/Win32 nicht,
sondern nur noch per Device-Driver.
Post by Stefan
Oder gibt es vieleicht eine Art Sandart von Intel oder AMD?
[Teilweise ist dies (auch) vom Motherboard/BIOS abhängig...]

Wäre mir nicht bekannt,
ist so auch eine reine Windows/Win32 Frage.
Suche (Google) erst nach einer funktionierenden Win32/C++ Lösung,
das portieren nach C# ist dann 'simpel'.
--
Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/
j***@googlemail.com
2014-12-28 13:13:58 UTC
Permalink
I get the Temperature here, but there are still some unsolved Problems... The Temperature seems to stay at 28°C


private string getTemperature()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature");
ManagementObjectCollection.ManagementObjectEnumerator enumerator = searcher.Get().GetEnumerator();

while (enumerator.MoveNext())
{
ManagementBaseObject object = enumerator.Current;

if (tempObject != null)
{
decimal d;
String s = object["CurrentTemperature"].ToString();
decimal.TryParse(s, out d);

//makes to Celsius
d /= 10;
d -= 273;

return d.ToString();
}
}
return "XX";
}

Gudula Wachtel
2005-02-21 17:09:41 UTC
Permalink
"Stefan" schrieb:

Hallo Stefan!

[ WMI ]
Post by Stefan
Leider funktioniert dieser nicht, da das Statement "SELECT * from
Win32_TemperatureProbe" nichts zurück gibt.
Hat vielleicht jemand schon mal das gleiche Problem gehabt oder eine Idee
wie ich das lösen könnte??
Ich habe ein Asusboard und einfach die Asus.dll aus PCProbe angezapft.

Es gibt auch den Motherboard Monitor(MBM), der eine Schnittstelle zu den
entsprechenden Funktionen implementiert hat. AFAIK sollte MBM
auf den meisten Boards arbeiten.

[Motherboard Monitor]
http://mbm.livewiredev.com/

[Visual Basic Code for Reading MBM Sensor-Data]
http://www.ionus.at/content/projects/mbmvb6/

Gruss Gudula
Lesen Sie weiter auf narkive:
Loading...