2010-09-01 118 views
8

如何使用C# 得到BIOS中的CPU溫度的信息,我給了一個嘗試的代碼CPU temperature monitoring如何使用c#從Bios獲取CPU溫度信息?

,但沒有運氣。 'enumerator.Current'引發了一個異常。

我該如何做到這一點?謝謝。

錯誤:

「這個系統不支持 所需的WMI對象(1) - 檢查所支持 \ r \ n \ r \ n中的 例外文件\ r \ n不是在 系統.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus 的errorCode個)\ r \ n在 System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext(個)\ r \ n 在 CedarLogic.WmiLib.SystemStatistics.RefreshReadings() 在 d:\下載\ TEM pMonitorSrc \ TemperatureMonitorSln \ WmiLib \ SystemStatistics.cs:在 d線 25 \ r \ n在 CedarLogic.WmiLib.SystemStatistics.get_CurrentTemperature() :\下載\ TempMonitorSrc \ TemperatureMonitorSln \ WmiLib \ SystemStatistics.cs:線 87 \在 TemperatureMonitor.SystemTrayService.CheckSupport(R \ n)的 在 d:\下載\ TempMonitorSrc \ TemperatureMonitorSln \ TemperatureMonitor \ SystemTrayService.cs:線 260"

+0

它拋出了什麼異常? – Hogan 2010-09-01 02:55:38

+2

您需要從主板製造商處獲得改進的WMI提供程序。不要指望得到一個。 – 2010-09-01 02:56:21

+0

您可以使用「WMI Studio」查看所有WMI對象。它是WMI對象的資源管理器。你可以用你最喜歡的搜索引擎找到它。 – linuxuser27 2010-09-01 03:03:58

回答

0

我建議以下辦法。有幾個免費的應用程序可以監視CPU溫度並顯示它。嘗試下載一些,然後分析應用程序以查看他們正在調用哪些方法,以便發現它們的工作方式。也許他們對現有的方法有一個非常不同的方法。您可能還可以只給他們發郵件,問他們是怎麼做到的?

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

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

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

+2

@Anuya:那麼你是如何最終獲得CPU溫度的?請分享。 – 2012-11-28 04:10:51

2

你需要支持許多不同勢硬件傳感器採集的溫度數據。更好的辦法是採取準備使用這樣的解決方案:

1)打開硬件監控 - 開源.NET 2.0應用:

http://openhardwaremonitor.org/

2)核心溫度 - 免費的應用程序和.NET API來得到的溫度數據:

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

1

我知道這個線程是舊的,但我想給它添加一個有點不同的辦法。從主板上的I/O芯片獲取製造/模型,並獲取所述I/O芯片的數據表(我將使用ITE IT8783F芯片作爲參考)。 查看諸如環境控制器之類的東西,並計算訪問和讀取端口。是的,你必須理解十六進制和MSB和LSB,我不會進入這裏的計算/解釋(超出範圍)。 現在,在這種情況下,訪問端口是295,讀取端口是296。在該部分進一步閱讀有一個環境控制器寄存器表。在這種情況下,CPU溫度在寄存器2Ah(或0x2A)中。因此,VB/C#代碼我用來拉的信息是這樣的:

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 

現在,你只需要找出你想用它做什麼。記住,如果你發現你的數字太瘋狂了,你要麼從錯誤的寄存器中拉出來,要麼你需要實現一個縮放因子(就像你使用電壓讀數一樣)。這也應該在數據表中。

+0

以下是來自英特爾的相關文檔,CPU監控與2010年9月的DTS/PECI,http://download.intel.com/design/intarch/papers/322683.pdf以及有關英特爾處理器溫度數據解釋的一些信息。 – 2013-01-13 04:53:04