如何在VB.NET中获取USB设备名称并显示在窗体数据表中?
在VB.NET中获取USB设备名称并添加至数据表
步骤1:添加必要引用与命名空间
首先要给项目添加System.Management引用(右键项目→引用→添加引用→找到并勾选System.Management),然后在代码顶部导入所需命名空间:
Imports System.Management Imports System.Data
步骤2:编写USB设备名称获取方法
通过WMI查询系统中的USB磁盘设备(避免获取鼠标、键盘这类非存储USB外设):
Private Function GetUsbDeviceNames() As List(Of String) Dim usbNameList As New List(Of String) ' WMI查询语句:筛选接口类型为USB的磁盘驱动器 Dim query As New SelectQuery("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'") Using searcher As New ManagementObjectSearcher(query) For Each device As ManagementObject In searcher.Get() Dim deviceName As String = device("Caption")?.ToString() If Not String.IsNullOrEmpty(deviceName) Then usbNameList.Add(deviceName) End If Next End Using Return usbNameList End Function
步骤3:初始化数据表并绑定数据
假设窗体上有一个DataGridView控件(命名为dgvUsbDevices),以下代码会创建数据表并将USB设备名称填充进去:
Private Sub LoadUsbToDataTable() ' 创建数据表结构 Dim usbDataTable As New DataTable() usbDataTable.Columns.Add("USB设备名称", GetType(String)) ' 获取USB设备列表并添加到数据表 For Each name As String In GetUsbDeviceNames() usbDataTable.Rows.Add(name) Next ' 将数据表绑定到DataGridView显示 dgvUsbDevices.DataSource = usbDataTable End Sub
步骤4:触发数据加载
在窗体的Load事件中调用加载方法,实现窗体启动时自动获取并显示USB设备:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load LoadUsbToDataTable() End Sub
注意事项
- 如果运行时无法获取设备信息,尝试以管理员身份启动程序,WMI部分查询需要权限。
- 若要获取所有类型的USB设备(如打印机、摄像头),可修改WMI查询语句为
SELECT * FROM Win32_USBHub,对应调整获取的字段即可。
内容的提问来源于stack exchange,提问作者DarkCookieSF
相关产品推荐
相关产品推荐

