使用ManagementObjectSearcher获取当前时钟速度

时间:2015-06-01 02:18:09

标签: vb.net cpu frequency

我想获得当前的时钟速度。所有搜索结果都显示WMI。问题是,它不起作用。例如,我超频我的CPU来测试它(增加200 MHz)。 CPU-Z正确报告了它,4.2 GHz。 WMI错误地将其报告为4.0 GHz(库存最大时钟速度)。

我还注意到系统属性通常不会正确报告时钟速度。我假设它也使用WMI来提取数据。我也理解CPU并不总是以最高时钟速度运行。在我的情况下,它以最高时钟速度运行(根据CPU-Z)。

我想弄清楚这一点的原因是比较当前时钟速度和最大时钟速度(以确定我的应用程序中CPU是否超频)。

以下是我的代码示例。

Imports System.Management
Public Class Form1

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim cpuSpeed As String = String.Empty
    Dim wmiObj As ManagementObjectSearcher = New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_Processor")
    For Each element As ManagementObject In wmiObj.Get()
        cpuSpeed = element.GetPropertyValue("CurrentClockSpeed").ToString
    Next
    MsgBox("Your current CPU speed is " & cpuSpeed, MsgBoxStyle.Information, "WMI Test")
End Sub
End Class

结果就是股票时钟速度。它不会告诉我当前的情况。

0 个答案:

没有答案