我如何在旧的VB6上获得CPU和GPU的真实温度?没有 WMI

问题描述 投票:0回答:1

我只看过 VB.NET 的示例。但我需要在 VB6 上执行此操作。有人有例子或者可以做到这一点吗? 如何使用带有 Open Hardware Monitor DLL 的 VB.NET 查看 CPU 的温度

有人可以在 VB6 中编辑 VB.NET 的代码吗?

我意识到没有内置的 WinAPI 温度函数,许多人为此使用第三方动态库 - OpenHardwareMonitorLib.dll 。在哪里可以找到该库的所有函数以在 VB6 中使用?此外,该库是用 C# for .NET 创建的,99.9% 无法在 VB6 上运行!也许还有另一种方法来获取真实温度?

WMI - 我不考虑它,因为它要么不起作用,要么显示相同的参数

“wmic /命名空间: oot\wmi PATH MSAcpi_ThermalZoneTemperature 获取当前温度”

PS:我认为直到有人编写一个现成的库供使用(带有功能描述),所以这些问题将来会出现在很多人身上!

vb6 cpu temperature
1个回答
0
投票

你错了,VB6 和 OHM 会一起运行,你只需尝试连接到 WMI 即可。网上有很多例子。

Public Sub getgblSensorArray(ByRef thisArray() As String, ByRef gblSensorCount As Integer)

Dim strComputer As String
Dim objSWbemLocator As Object
Dim objSWbemServices As Object
Dim colItems As Object
Dim objItem As Object
Dim thisSensorCount As Integer: thisSensorCount = 0
Dim I As Integer

On Error GoTo getGblSensorArray_Error

strComputer = "."  ' localhost

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\OpenHardwareMonitor")
Set colItems = objSWbemServices.ExecQuery("SELECT * FROM Sensor WHERE SensorType = 'Temperature'")

thisSensorCount = colItems.Count

ReDim thisArray(thisSensorCount, 4) As String
For Each objItem In colItems
    thisArray(I, 1) = objItem.Name
    thisArray(I, 2) = objItem.Value
    thisArray(I, 3) = objItem.Max
    thisArray(I, 4) = objItem.Identifier
    I = I + 1
Next
      
gblSensorCount = thisSensorCount
    
On Error GoTo 0
Exit Sub

getGblSensorArray_Error:

MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure getGblSensorArray, line " & Erl & "."

结束子

© www.soinside.com 2019 - 2024. All rights reserved.