我想获得当前的时钟速度。所有搜索结果都显示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
结果就是股票时钟速度。它不会告诉我当前的情况。