我正在尝试找到一种方法来使用dotnet(vb或c#)查找USB集线器的特定插槽号 我可以看到该信息存在于设备管理器中,如下所示:
Port_#0001.Hub_#0004
简而言之,我想列出集线器的所有USB端口以及连接到集线器的设备名称。 我正在检查WMI选项,但在那里找不到Device_LocationInfo。 你能帮忙吗?
答案 0 :(得分:0)
Win32PnPSignedDriver
类不仅包含有关USB设备的信息,还包含与您的PC连接的所有设备的信息。它具有字段Location
,其中包含您可能要查找的内容。
让我们开始这样。我将在VB中工作。
创建一个新的Windows窗体,并添加一个按钮(Button1)和一个DataGridView(DataGridView1)。
从Visual Studio中,转到“项目”>“添加引用”,然后添加对System.Management的引用
打开Form1.vb,然后输入以下代码
Imports System.Management
Imports Microsoft.Win32
Public Class Form1
Dim dt As New DataTable
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT DeviceName, Location, Manufacturer FROM Win32_PnPSignedDriver")
dt.Columns.Clear()
For Each queryObj As ManagementObject In searcher.Get()
For Each item As PropertyData In queryObj.Properties()
Try
dt.Columns.Add(item.Name)
Catch ex As Exception
End Try
Next
Exit For
Next
dt.Rows.Clear()
For Each queryObj As ManagementObject In searcher.Get()
Dim dr As DataRow = dt.NewRow
For Each item As PropertyData In queryObj.Properties
Try
dr(item.Name) = item.Value
Catch ex As Exception
End Try
Next
dt.Rows.Add(dr)
dr = dt.NewRow
Next
DataGridView1.DataSource = dt
End Sub
End Class