Я пытаюсь получить результаты ping из своей локальной сети и использую чужой код VBA. Я не понимаю, что такое «ExecQuery» и как он должен быть написан, или как я получаю сообщение об ошибке «Неизвестный хост» на подключенных именах компьютеров.
Это мое первое изучениеКод VBA и я исследовали, как «winmgmts» работает на базовом уровне;но «ExecQuery» сбил меня с толку.
Function GetPingResult(Host)
Dim objPing As Object
Dim objStatus As Object
Dim strResult As String
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
ExecQuery("Select * from Win32_PingStatus Where Address = '" & Host & "'")
For Each objStatus In objPing
Select Case objStatus.StatusCode
Case 0: strResult = "Connected"
Case Else: strResult = "Unknown host"
End Select
GetPingResult = strResult
Next
Set objPing = Nothing
End Function
Я ожидаю определенного вывода с допустимого имени компьютера:
Computer1 Connected
Computer2 Unknown Host
Computer3 Connected