Как получить значения из предметов внутри объекта? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть следующий код и запрос, чтобы получить отправленные / полученные байты от соединения Wlan.Я хочу получить значения для каждого элемента «Свойства», но я получаю Generic failure при попытке так:

a = WMIvalues.Item(1).Properties_.Item(1).Value

Как правильно сделать это?

 Sub Test()
    Dim WMIvalues As Object
    Dim sWQL      As String


    sWQL = "Select BytesReceivedPersec,BytesSentPersec,BytesTotalPersec  from  Win32_PerfRawData_Tcpip_NetworkInterface"

    Set WMIvalues = GetObject("winmgmts:root/CIMV2").ExecQuery(sWQL)

    a = WMIvalues.Item(1).Properties_.Item(1).Value

End Sub

enter image description here

1 Ответ

1 голос
/ 23 сентября 2019

Это работает для меня:

Dim WMIvalues As Object
Dim sWQL      As String
Dim o As Object, i As Long

sWQL = "Select BytesReceivedPersec,BytesSentPersec,BytesTotalPersec  from  " _
        "Win32_PerfRawData_Tcpip_NetworkInterface"

Set WMIvalues = GetObject("winmgmts:root/CIMV2").ExecQuery(sWQL)

i = 0
For Each o In WMIvalues
    i = i + 1 'increment item counter variable
    Debug.Print o.BytesReceivedPersec, o.BytesSentPersec, o.BytesSentPersec, o.BytesTotalPersec

    'logic here based on i and the o properties...
Next o

См .: https://www.activexperts.com/admin/scripts/wmi/vbscript/0473/

...