You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 03:17:39