以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  获取U盘信息  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119825)

--  作者:lihe60
--  发布时间:2018/6/1 15:43:00
--  获取U盘信息
下面代码获取三个信息,如何只输出U盘的信息?

Dim objWMIService As Object
Dim colItems As Object
Dim objitem As Object
Dim a, b, c, d, e, U_Dist
objWMIService = GetObject("winmgmts:\\\\.\\root\\cimv2")
colItems = objWMIService.ExecQuery("Sele ct * From Win32_USBHub")
For Each objitem In colItems
    a = objitem.DeviceID
    If a Like "*VID*" Then  \'
        b = Split(a, "\\")
        c = Split(b(UBound(b) - 1), "&")
        d = Split(c(UBound(c) - 1), "_")
        e = Split(c(UBound(c)), "_")
        U_Dist = d(UBound(d)) + e(UBound(e)) + b(UBound(b))
        output.Show(U_Dist)
    End If
Next

--  作者:有点甜
--  发布时间:2018/6/1 16:01:00
--  
Dim s As String = "USB*"

Dim USBDevices, USBDevice, USBDiskPartitions, USBDiskPartition, LogicalUSBDisks, LogicalUSBDisk , objWMIService As Object
objWMIService = GetObject("winmgmts:\\\\.\\root\\cimv2")
USBDevices = objWMIService.execquery("Select * From Win32_DiskDrive where InterfaceType=\'USB\'")
For Each USBDevice In USBDevices
    If USBDevice.PNPDeviceID Like s Then
        USBDiskPartitions = objWMIService.execquery("Associators of {Win32_DiskDrive.DeviceID=\'" & USBDevice.DeviceId & "\'} where AssocClass = Win32_DiskDriveToDiskPartition")
        For Each USBDiskPartition In USBDiskPartitions
            LogicalUSBDisks = objWMIService.execquery("Associators of {Win32_DiskPartition.DeviceID=\'" & USBDiskPartition.DeviceId & "\'} where AssocClass = Win32_LogicalDiskToPartition")
            For Each LogicalUSBDisk In LogicalUSBDisks                
                msgbox(LogicalUSBDisk.DeviceId)
            Next
        Next
        Exit For
    End If
Next

--  作者:lihe60
--  发布时间:2018/6/1 16:15:00
--  
读出来盘符,但U盘的序列号不能读出来。
--  作者:有点甜
--  发布时间:2018/6/1 17:15:00
--  
Dim USBDevices, USBDevice As object
Dim objWMIService = GetObject("winmgmts:\\\\.\\root\\cimv2")
USBDevices = objWMIService.execquery("Select * From Win32_DiskDrive where InterfaceType=\'USB\'")
For Each USBDevice In USBDevices
    msgbox(USBDevice.Caption)
    msgbox(USBDevice.PNPDeviceID)
    msgbox(USBDevice.Size)
Next