2010-09-01 14 views
8

Jak uzyskać informacje od temperatury CPU BIOS przy użyciu C# dałem spróbować kodu w CPU temperature monitoringJak uzyskać informacje o temperaturze procesora z Bios przy użyciu C#?

ale bez powodzenia. "enumerator.Current" zwrócił wyjątek.

Jak mogę to osiągnąć? Dzięki.

błędu:

„System ten nie obsługuje żądane obiekty WMI (1) - sprawdzić wyjątku, pliku \ r \ nktóre obsługiwany \ r \ n \ r \ N w Systemu .Management.ManagementException.ThrowWithExtendedInfo (ManagementStatus errorCode) \ r \ n co System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext() \ r \ n w CedarLogic.WmiLib.SystemStatistics.RefreshReadings() w d: \ Pliki do pobrania \ Tem pMonitorSrc \ TemperatureMonitorSln \ WmiLib \ SystemStatistics.cs: linia 25 \ r \ n co CedarLogic.WmiLib.SystemStatistics.get_CurrentTemperature() w D: \ pobrania \ TempMonitorSrc \ TemperatureMonitorSln \ WmiLib \ SystemStatistics.cs: linia 87 \ r \ n (w TemperatureMonitor.SystemTrayService.CheckSupport) w D: \ pobrania \ TempMonitorSrc \ TemperatureMonitorSln \ TemperatureMonitor \ SystemTrayService.cs: linia 260"

+0

Jaki wyjątek rzucił? – Hogan

+2

Będziesz musiał uzyskać poprawionego dostawcę WMI od producenta płyty głównej. Nie licz na to. –

+0

Możesz przeglądać wszystkie obiekty WMI za pomocą "WMI Studio". Jest eksploratorem obiektów WMI. Możesz go znaleźć za pomocą ulubionej wyszukiwarki. – linuxuser27

Odpowiedz

0

będę zalecamy następujące metody. Istnieje kilka darmowych aplikacji, które monitorują temp. Procesora i wyświetlają go. Spróbuj pobrać, a następnie przeanalizuj aplikację, aby zobaczyć, jakie metody wywołują, aby dowiedzieć się, jak działają. Może mają zupełnie inne podejście do twojej obecnej. Również może być w stanie po prostu napisz do nich i zapytać, jak oni to zrobili ...

http://www.alcpu.com/CoreTemp/

http://www.techpowerup.com/realtemp/

http://malektips.com/core-temp-cpu-windows-system-tray-taskbar.html

+2

@Anuya: Więc jak udało ci się uzyskać temperaturę procesora ??? Proszę Podziel się. –

2

Trzeba wspierać wiele czujników rozróżnianie sprzętu do zbierania danych temperaturowych. Lepszym sposobem jest wziąć gotowe do użycia rozwiązania, takie jak:

1) Otwórz monitor Hardware - open source .NET 2.0 aplikacji:

http://openhardwaremonitor.org/

2) Temp Rdzeń - darmowa aplikacja i .NET API uzyskać dane temperatury:

http: // www.alcpu.com/CoreTemp/developers.html

1

znam ten wątek jest stary, ale chciałem dodać do niego z nieco innego podejścia. Pobierz markę/model z układu wejścia/wyjścia na płycie głównej i uzyskaj arkusz danych dla wspomnianego układu I/O (będę używał układu ITE IT8783F w celach referencyjnych tutaj). Sprawdź, jak w kontrolerze środowiska i obliczyć porty dostępu i odczytu. Tak ... ty będzie musi zrozumieć HEX i MSB i LSB, a ja nie pójdę do obliczeń/wyjaśnienia tutaj (poza zakresem). Teraz, w tym przypadku port dostępu to 295, a port odczytu to 296.Dalsze czytanie w tej sekcji zawiera tabelę rejestrów kontrolerów środowiska. W tym przypadku temperatura procesora znajduje się w rejestrze 2Ah (lub 0x2A). Tak, VB/C# Kod kiedyś wyciągnąć informacji wygląda następująco:

Private Function GetCPUTemp() As UInt32 
    Dim tCpu As UInt32 
    Dim stCpu As Short 
    PortAccess.Outputb(&H295, &H2A) 
    stCpu = PortAccess.Inputb(&H296) 
    tCpu = CType(stCpu, UInt32) 
    Return tCpu 
End Function 

Teraz po prostu trzeba dowiedzieć się, co chcesz z nim zrobić. Pamiętaj, że jeśli zauważysz, że dostajesz zwariowane, zwariowane liczby, albo wyciągasz z niewłaściwego rejestru, albo możesz potrzebować wprowadzić współczynnik skalowania (tak jak robisz to z odczytami napięcia). To również powinno znajdować się w arkuszu danych.

+0

Oto odpowiedni dokument firmy Intel, monitorowanie procesora za pomocą DTS/PECI od września 2010 r., Http://download.intel.com/design/intarch/papers/322683.pdf z pewnymi informacjami na temat interpretacji danych temperatury z procesorów Intela. –

Powiązane problemy