Я пытаюсь получить информацию о процессоре, например, имя Intel® Core ™ (i5-7200U CPU @ 2,50 ГГц) При поиске в Интернете я получил несколько методов и кодов и, наконец, собрал функциюкоторый дает мне все свойства процессора, используя цикл for-each
.Ниже приведена полная функция и образец ссылки также прилагается.Я пытаюсь получить только имя свойства.Может ли кто-нибудь помочь мне получить name property
без цикла for-each или другим методом, чтобы я мог получить только имя процессора.Я буду использовать этот код для сбора жесткого диска, ОЗУ, процессора информации, но не всей информации, только имени, размера и т. Д. Заранее спасибо.
Пример файла Скачать Ссылка
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