六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學習啦 > 學習電腦 > 電腦硬件知識 > CPU知識 > 怎么獲取CPU的溫度

怎么獲取CPU的溫度

時間: 沈迪豪908 分享

怎么獲取CPU的溫度

你知道如何獲取CPU的溫度嗎?跟著學習啦小編一起學習獲取CPU的溫度的方法吧。

  作為一個系統(tǒng)級程序員或者編程愛好者,掌握一些系統(tǒng)的高級編程技巧是非常有意義的。本文將介紹如何利用一些高級的編程技巧來實現(xiàn)動態(tài)監(jiān)控。

  雖然Windows 98“系統(tǒng)工具”中的“資源狀況”程序能夠監(jiān)視CPU的資源占用狀況,但是那些相關(guān)的數(shù)據(jù)卻無法傳遞到我們自己的程序中。為此,筆者用VB 6編寫了一個具有上述功能的CPU監(jiān)視軟件,它可以實現(xiàn)對CPU資源狀況的監(jiān)視并取得有關(guān)數(shù)據(jù),并且能夠顯示到一個精致的圖示窗口中。

  編程原理

  CPU的資源占用情況真正反映在CMOS中,但是如果我們直接從這里開始編程,那將是一件非常復雜的工作。幸好,Windows 98已經(jīng)幫我們做好了這一步,它的底層技術(shù)能夠從CMOS中獲取CPU的資源占用狀況參數(shù)并且記錄到注冊表中“HKEY_DYN_DATA\PerfStats\StatData”的分支“KERNEL\CPUUsage”中,通過周期性地讀取該鍵的鍵值,并且將參數(shù)傳遞到我們自己制作的監(jiān)視器界面或者有關(guān)變量中,就可以即時獲得并反映出CPU的使用狀況了。

  本程序的關(guān)鍵是以通用的方法獲取相關(guān)鍵值并反映輸出到自制的動態(tài)進度監(jiān)視器上,為了更有利于觀察、分析,我們將添加一個簡單的趨勢分析平均線。通過本文,初學者還將能了解如何從注冊表的指定項獲取數(shù)據(jù)和利用Picture控件實現(xiàn)進度指示器的編程技巧。

  獲取CPU的溫度的方法

  1.設計程序界面

  首先運行VB 6中文版,建立一個標準的exe工程,將窗體命名為frmmain,borderstyle屬性設為:3-fixed,caption,屬性設置為空;接著添加一個frame控件——“frame1”,caption屬性設置為空,再添加picturebox控件pctPrg,前景色為綠色,背景色為淺紅色;最后添加一個定時器控件——“timer”,interval設置為100(當然,也可以根據(jù)自己的需要設置讀取間隔),enabled設置為true,其他的屬性采用系統(tǒng)的默認值,調(diào)整窗體和控件到適當位置和適當大小即可(參見附圖)。

  2.編寫程序代碼,雙擊窗體frmmain并輸入以下代碼

  Option Explicit '變量檢查

  Private Declare Function RegQueryValueEx Lib "advapi32.dll " Alias "RegQueryValueExA " (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

  '獲取一個指定的注冊表項的設置值

  Private Declare Function RegOpenKey Lib "advapi32.dll " Alias "RegOpenKeyA " (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

  '打開一個指定的的注冊表項

  Private Declare Function RegCloseKey Lib "advapi32.dll " (ByVal hKey As Long) As Long

  '關(guān)閉系統(tǒng)注冊表中的指定項(或指定鍵)

  Private Const REG_DWORD = 4

  Private Const HKEY_DYN_DATA = &&H80000006

  '這兩個常數(shù)是讀寫注冊表必須的

  '以上API函數(shù)和常數(shù)結(jié)合能夠?qū)崿F(xiàn)對注冊表任意指定項的訪問

  Private Avg As Long

  'CPU 資源占用參數(shù)平均數(shù)

  Private Sum As Long

  'CPU 資源占用參數(shù)合計數(shù)

  Private Index As Long '統(tǒng)計次數(shù)

  '窗體級函數(shù)、常數(shù)和變量聲明結(jié)束

  Private Function GetCPUUsage() As Long

  On Error Resume Next

  '忽略可能產(chǎn)生的錯誤

  Dim Data As Long, Typ As Long, Size As Long

  Dim hKey As Long

  Dim hRet As Long

  hRet = RegOpenKey(HKEY_DYN_DATA, "PerfStats\StatData ", hKey)

  '打開該主鍵

  hRet = RegQueryValueEx(hKey, "KERNEL\CPUUsage ", 0&&, REG_DWORD, Data, 4)

  '讀取主鍵值

  GetCPUUsage = Data

  ' 為自定義函數(shù)賦值

  hRet = RegCloseKey(hKey)

  '關(guān)閉該主鍵

  End Function

  Private Sub Form_Load()

  '初始化標題和提示信息

  Dim hKey As Long, Data As Long

  App.Title = "CPU監(jiān)視器 占有率: "

  Me.Caption = App.Title

  '初始化應用程序標題欄

  pctPrg.ToolTipText = "單擊右鍵退出程序! "

  RegOpenKey HKEY_DYN_DATA, "PerfStats\ StartStat ", hKey

  RegQueryValueEx hKey, "KERNEL\CPUUsage ", 0, REG_DWORD, Data, 4

  RegCloseKey hKey

  '打開注冊表的資源監(jiān)控標識

  End Sub

  Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

  '程序結(jié)束前關(guān)閉定時器

  Timer.Enabled = False

  End Sub

  Private Sub Form_Unload(Cancel As Integer)

  End '結(jié)束程序

  End Sub

  Private Sub pctPrg_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

  '右鍵單擊退出程序

  If Button = 2 Then

  Unload Me

  End If

  End Sub

  Private Sub Timer_Timer()

  '利用定時器周期性地讀取資源狀況

  '本程序每隔0.1秒讀取一次數(shù)據(jù)

  Dim tmp As Long ' CPU資源占用狀況參數(shù)

  tmp = GetCPUUsage '獲得參數(shù)

  Me.Caption = App.Title && FormatPercent(tmp / 100) '

  '在窗體標題欄用百分比數(shù)字形式反映占用率

  Sum = Sum + tmp '累加統(tǒng)計

  Index = Index + 1 '次數(shù)統(tǒng)計

  Avg = Int(Sum / Index) ' 求平均值

  pctPrg.Cls ' 清除圖示內(nèi)容

  pctPrg.Line (0, 0)-(tmp, 18), ,&& BF

  '以綠色圖示資源占用狀況

  pctPrg.Line (Avg, 0)-(Avg, 18), &&HFF

  '以深紅色畫出平均線

  pctPrg.Line (Avg + 1, 0)-(Avg + 1, 18), &&HFF

  End Sub

  '程序結(jié)束

  通過以上步驟,裝備精良的CPU監(jiān)視器就制作完成了。

  注意事項

  需要說明的是,在內(nèi)存配置較低的計算機中(比如內(nèi)存32MB,Windows 98第二版),CPU的占有率是較高的,一般能夠達到50%,這可能是由于系統(tǒng)需要CPU進行許多的運算模擬來彌補資源的不足。然而在88MB內(nèi)存,同樣操作系統(tǒng)的機器上,占有率一般只有10%。另外,本文主窗體中定時器運行過程函數(shù)中調(diào)用的FormatPercent函數(shù)是VB 6.0新添加的一個函數(shù),它的作用是將一個表達式轉(zhuǎn)化成百分數(shù)。用VB 5.0開發(fā)的讀者需要采取其他變通方法,以實現(xiàn)監(jiān)控CPU功能。本程序在Windows 98第二版、VB 6.0中文企業(yè)版下測試通過。

怎么獲取CPU的溫度相關(guān)文章:

1.怎么看cpu的溫度

2.在線查看cpu溫度

3.如何查看cpu溫度

4.臺式機溫度如何檢測

5.怎么利用BIOS查看主機內(nèi)的溫度

6.檢測CPU溫度的方法

2018888