-1

我尝试创建 Visual Basic 2010 程序来检测连接的连接及其 IP 地址。例如,如果我使用无线和电缆连接,它将显示连接的媒体及其 IP 地址。我从 WMI 代码创建者那里获取的代码

Dim strComputer = "." 
Dim Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapterConfiguration",,48) 
For Each objItem in colItems 
Wscript.Echo "-----------------------------------"
Wscript.Echo "Win32_NetworkAdapterConfiguration instance"
Wscript.Echo "-----------------------------------"
If isNull(objItem.IPAddress) Then
    Wscript.Echo "IPAddress: "
Else
    Wscript.Echo "IPAddress: " & Join(objItem.IPAddress, ",")
End If

然后我收到错误消息

'colItems' is not declared. It may be inaccessible due to its protection level. 

我做错了吗?有人可以告诉我这是否是错误的代码吗?

4

1 回答 1

0

更好地使用类ManagementObjectSearcher。这里有一个例子:

Private objOS As ManagementObjectSearcher
Private objCS As ManagementObjectSearcher
Private objMgmt As ManagementObject
Private m_strComputerName As String
Private m_strManufacturer As String
Private m_StrModel As String
Private m_strOSName As String
Private m_strOSVersion As String
Private m_strSystemType As String
Private m_strTPM As String
Private m_strWindowsDir As String


Public Sub New()

    objOS = New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem")
    objCS = New ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem")
    For Each objMgmt In objOS.Get


        m_strOSName = objMgmt("name").ToString()
        m_strOSVersion = objMgmt("version").ToString()
        m_strComputerName = objMgmt("csname").ToString()
        m_strWindowsDir = objMgmt("windowsdirectory").ToString()
    Next

只需将查询更改为:SELECT * FROM Win32_NetworkAdapterConfiguration

于 2013-10-22T09:01:20.143 回答