从对象获取 Processor.Name



我正在尝试获取处理器信息,特别是英特尔(R( 酷睿(TM( i5-7200U CPU @ 2.50GHz等名称。

搜索网络,我找到了一个函数,它使用for-each循环为我提供了处理器的所有属性。

下面是完整的功能,还附上了一个示例链接。我试图只获取名称属性。如何在没有 for-each 循环或其他方法的情况下获取name property,以便我只能获取处理器名称。我将使用此代码来收集硬盘,RAM,处理器信息,但并非所有信息仅收集名称,大小等。

示例文件下载链接

Public oWMISrvEx As Object 'SWbemServicesEx
Public oWMIObjSet As Object 'SWbemServicesObjectSet
Public oWMIObjEx As Object 'SWbemObjectEx
Public oWMIProp As Object 'SWbemProperty
Public sWQL As String 'WQL Statement
Public n

Sub ProcessorWMI()
Dim sht As Worksheet
Set sht = ThisWorkbook.Sheets("Processor")
sWQL = "Select * From Win32_Processor"
Set oWMISrvEx = GetObject("winmgmts:root/CIMV2")
Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL)
intRow = 2
strRow = Str(intRow)
sht.Range("A1").Value = "Name"
sht.Cells(1, 1).Font.Bold = True
sht.Range("B1").Value = "Value"
sht.Cells(1, 2).Font.Bold = True
For Each oWMIObjEx In oWMIObjSet
For Each oWMIProp In oWMIObjEx.Properties_
If Not IsNull(oWMIProp.Value) Then
If IsArray(oWMIProp.Value) Then
For n = LBound(oWMIProp.Value) To UBound(oWMIProp.Value)
Debug.Print oWMIProp.Name & "(" & n & ")", oWMIProp.Value(n)
sht.Range("A" & Trim(strRow)).Value = oWMIProp.Name
sht.Range("B" & Trim(strRow)).Value = oWMIProp.Value(n)
sht.Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft
intRow = intRow + 1
strRow = Str(intRow)
Next
Else
sht.Range("A" & Trim(strRow)).Value = oWMIProp.Name
sht.Range("B" & Trim(strRow)).Value = oWMIProp.Value
sht.Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft
intRow = intRow + 1
strRow = Str(intRow)
End If
End If
Next
Next
End Sub

获取处理器名称的最简单方法

Sub ProcessorName()
Dim objPross As Object, cpu As Object
Set objPross = GetObject("WinMgmts:").instancesof("Win32_Processor")
For Each cpu In objPross
Debug.Print cpu.Name
Next
End Sub

当我运行代码时,我得到Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz.

这将符合我的目的。无论如何,是否有任何属性列表 您的代码中的对象 CPU,例如名称?– Harun24HR 14 秒前

那你可以直接从注册表中读取名称吗?

Sub ProcessorName()
Dim objWsScript As Object
Set objWsScript = CreateObject("WScript.Shell")
Debug.Print objWsScript.RegRead("HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystemCentralProcessorProcessorNameString")
End Sub

相关内容

最新更新