免费无码作爱视频,女厕厕露p撒尿八个少妇,精品人妻av区乱码,国产aⅴ爽av久久久久久

獲取CPU的溫度的方法

時間:2022-06-03 08:34:34 電腦 我要投稿
  • 相關推薦

獲取CPU的溫度的方法

  在內存配置較低的計算機中(比如內存32MB,Windows 98第二版),CPU的占有率是較高的,一般能夠達到50%,這可能是由于系統需要CPU進行許多的運算模擬來彌補資源的不足。下面是小編收集整理獲取CPU溫度的方法,歡迎閱讀。

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

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

  編程原理

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

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

  獲取CPU的溫度的方法

  1.設計程序界面

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

  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

  '關閉系統注冊表中的`指定項(或指定鍵)

  Private Const REG_DWORD = 4

  Private Const HKEY_DYN_DATA = &&H80000006

  '這兩個常數是讀寫注冊表必須的

  '以上API函數和常數結合能夠實現對注冊表任意指定項的訪問

  Private Avg As Long

  'CPU 資源占用參數平均數

  Private Sum As Long

  'CPU 資源占用參數合計數

  Private Index As Long '統計次數

  '窗體級函數、常數和變量聲明結束

  Private Function GetCPUUsage() As Long

  On Error Resume Next

  '忽略可能產生的錯誤

  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

  ' 為自定義函數賦值

  hRet = RegCloseKey(hKey)

  '關閉該主鍵

  End Function

  Private Sub Form_Load()

  '初始化標題和提示信息

  Dim hKey As Long, Data As Long

  App.Title = "CPU監視器 占有率: "

  Me.Caption = App.Title

  '初始化應用程序標題欄

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

  RegOpenKey HKEY_DYN_DATA, "PerfStats\ StartStat ", hKey

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

  RegCloseKey hKey

  '打開注冊表的資源監控標識

  End Sub

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

  '程序結束前關閉定時器

  Timer.Enabled = False

  End Sub

  Private Sub Form_Unload(Cancel As Integer)

  End '結束程序

  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秒讀取一次數據

  Dim tmp As Long ' CPU資源占用狀況參數

  tmp = GetCPUUsage '獲得參數

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

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

  Sum = Sum + tmp '累加統計

  Index = Index + 1 '次數統計

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

  pctPrg.Cls ' 清除圖示內容

  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

  '程序結束

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

  注意事項

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



 


【獲取CPU的溫度的方法】相關文章:

bios設置cpu溫度的方法03-04

平板cpu溫度多少正常03-11

CPU溫度過高的影響08-08

cpu溫度多少算正常04-05

如何查看電腦CPU的溫度02-22

電腦cpu溫度多少正常07-19

cpu設置超頻的方法04-01

cpu驗證真假的方法03-03

i7cpu溫度多少正常09-23

臺式機的cpu溫度多少正常03-21

主站蜘蛛池模板: 抚宁县| 横峰县| 唐海县| 钟山县| 永寿县| 雅江县| 登封市| 双辽市| 长寿区| 泰顺县| 子洲县| 合川市| 安多县| 兴和县| 常山县| 布拖县| 阳谷县| 嘉峪关市| 社旗县| 隆化县| 佛冈县| 温州市| 卓资县| 通城县| 荆门市| 白河县| 扎兰屯市| 温州市| 翼城县| 女性| 长阳| 罗源县| 阿坝县| 车险| 玉山县| 博爱县| 怀宁县| 同江市| 嘉定区| 龙口市| 琼中|