大家通过对VB.NET语言的学习,会慢慢的被这款语言强大的功能所吸引住。作为一款完全面向对象的语言,为开发人员带来了很多的好处。比如在处理移动设备方面,就极大的体现了它的作用。在这里我们就先来了解一下VB.NET获取CPU使用率的相关应用技巧。

API声明
- Public Declare Function PdhVbGetOneCounterPath
 
Lib "PDH.DLL" (ByVal PathString As String,
ByVal PathLength As Integer, ByVal DetailLevel
As Integer, ByVal CaptionString As String)As Integer- Public Declare Function PdhVbCreateCounterPathList
 
Lib "PDH.DLL" (ByVal PERF_DETAIL As Integer,
ByVal CaptionString As String) As Integer- Public Declare Function PdhVbGetCounterPathFromList
 
Lib "PDH.DLL" (ByVal Index As Integer, ByVal Buffer
As String, ByVal BufferLength As Integer) As Integer- Public Declare Function PdhOpenQuery Lib "PDH.DLL"
 
(ByVal Reserved As Integer, ByVal dwUserData As
Integer, ByRef hQuery As Integer) As PDH_STATUS- Public Declare Function PdhCloseQuery Lib "PDH.DLL"
 
(ByVal hQuery As Integer) As PDH_STATUS- Public Declare Function PdhVbAddCounter Lib "PDH.DLL"
 
(ByVal QueryHandle As Integer, ByVal CounterPath As
String, ByRef CounterHandle As Integer) As PDH_STATUS- Public Declare Function PdhCollectQueryData Lib
 
"PDH.DLL" (ByVal QueryHandle As Integer) As PDH_STATUS- Public Declare Function PdhVbIsGoodStatus Lib "PDH.DLL"
 
(ByVal StatusValue As Integer) As Integer- Public Declare Function PdhVbGetDoubleCounterValue Lib
 
"PDH.DLL" (ByVal CounterHandle As Integer, ByRef
CounterStatus As Integer) As Double
枚举常数
- Enum PERF_DETAIL
 - PERF_DETAIL_NOVICE = 100
 - PERF_DETAIL_ADVANCED = 200
 - PERF_DETAIL_EXPERT = 300
 - PERF_DETAIL_WIZARD = 400
 - End Enum
 - Enum PDH_STATUS
 - PDH_CSTATUS_VALID_DATA = &H0S
 - PDH_CSTATUS_NEW_DATA = &H1S
 - PDH_CSTATUS_NO_MACHINE = &H800007D0
 - PDH_CSTATUS_NO_INSTANCE = &H800007D1
 - PDH_MORE_DATA = &H800007D2
 - PDH_CSTATUS_ITEM_NOT_VALIDATED = &H800007D3
 - PDH_RETRY = &H800007D4
 - PDH_NO_DATA = &H800007D5
 - PDH_CALC_NEGATIVE_DENOMINATOR = &H800007D6
 - PDH_CALC_NEGATIVE_TIMEBASE = &H800007D7
 - PDH_CALC_NEGATIVE_VALUE = &H800007D8
 - PDH_DIALOG_CANCELLED = &H800007D9
 - PDH_CSTATUS_NO_OBJECT = &HC0000BB8
 - PDH_CSTATUS_NO_COUNTER = &HC0000BB9
 - PDH_CSTATUS_INVALID_DATA = &HC0000BBA
 - PDH_MEMORY_ALLOCATION_FAILURE = &HC0000BBB
 - PDH_INVALID_HANDLE = &HC0000BBC
 - PDH_INVALID_ARGUMENT = &HC0000BBD
 - PDH_FUNCTION_NOT_FOUND = &HC0000BBE
 - PDH_CSTATUS_NO_COUNTERNAME = &HC0000BBF
 - PDH_CSTATUS_BAD_COUNTERNAME = &HC0000BC0
 - PDH_INVALID_BUFFER = &HC0000BC1
 - PDH_INSUFFICIENT_BUFFER = &HC0000BC2
 - PDH_CANNOT_CONNECT_MACHINE = &HC0000BC3
 - PDH_INVALID_PATH = &HC0000BC4
 - PDH_INVALID_INSTANCE = &HC0000BC5
 - PDH_INVALID_DATA = &HC0000BC6
 - PDH_NO_DIALOG_DATA = &HC0000BC7
 - PDH_CANNOT_READ_NAME_STRINGS = &HC0000BC8
 - End Enum
 - Public Const ERROR_SUCCESS As Short = 0
 - Public Structure CounterInfo
 - Dim hCounter As Integer
 - Dim strName As String
 - End Structure
 
在窗体的load事件里面添加一下语句:
- Dim pdhStatus As PDH_STATUS
 - pdhStatus = PdhOpenQuery
 
(0, 1, hQuery)- If pdhStatus <>
 
ERROR_SUCCESS Then- MsgBox("OpenQuery failed")
 - End
 - End If
 
在窗体的closed事件里面添加以下代码
- PdhCloseQuery(hQuery)
 
VB.NET获取CPU使用率之显示利用率信息
- Private Sub UpdateValues()
 - Dim dblCounterValue As Double
 - Dim pdhStatus As Integer
 - Dim strInfo As String
 - Dim i As Integer
 - PdhCollectQueryData(hQuery)
 - i = 0
 - dblCounterValue =
 
PdhVbGetDoubleCounterValue
(Counters(i).hCounter, pdhStatus)
将VB.NET获取CPU使用率显示在标签中
- If (pdhStatus = PDH_STATUS.
 
PDH_CSTATUS_VALID_DATA) or
(pdhStatus = PDH_STATUS.PDH_
CSTATUS_NEW_DATA) Then- strInfo = "CPU 使用率: " &
 
VB6.Format(dblCounterValue, "0.00")- pb1.Value = dblCounterValue
 - Me.Text = VB6.Format(dblCounterValue,
 
"0") & "% - CPU 当前状态"- End If
 - Label1.Text = strInfo
 - End Sub
 
                分享文章:快速掌握VB.NET获取CPU使用率技巧
                
                网页地址:http://www.csdahua.cn/qtweb/news46/463896.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网