zoukankan      html  css  js  c++  java
  • 朋友要的 VB读取优盘物理序列号

     以前的有一个别人写的这个代码,也是使用WMI的,不过效率好像高一些。今天看到朋友要,想找来着。结果没有找到。只好重新自己写了一个,效率有点低,没以前那个好,回头再慢慢找找看看是不是存别的地方了。


    Public Function GetUDiskID() As String
        
    '**********************
        '*Function:读取优盘物理序列号
        '*
        '*Author:张旋(zxsoft)
        '**********************
        On Error Resume Next
        
    Dim objWMIService As Object
        
    Dim colDevices As Object
        
    Dim objdevice As Object
        
    Dim UDiskID As String
        
    Dim isUDisk As Boolean
        
    Dim objUsbDevice As Object
        
    Dim colUSBDevices As Object
        isUDisk 
    = False
        
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
        
    Set colDevices = objWMIService.ExecQuery _
            (
    "Select * From Win32_USBControllerDevice")
        
    Dim ret
        
    For Each objdevice In colDevices
            
    Set colUSBDevices = objWMIService.ExecQuery _
                (
    "Select * From Win32_PnPEntity Where DeviceID = '" & Split(Replace(objdevice.Dependent, Chr(34), ""), "=")(1& "'")
            
    For Each objUsbDevice In colUSBDevices
                
    If Left(objUsbDevice.DeviceID, 8= "STORAGE\" Then
                    GetUDiskID 
    = UDiskID
                    
    Exit Function
                
    End If
                
    If Left(objUsbDevice.DeviceID, 8= "USB\VID_" Then
                    UDiskID 
    = Split(objUsbDevice.DeviceID, "\")(2)
                    
    If InStr(UDiskID, "&"> 0 Then
                        ret 
    = Split(UDiskID, "&")
                        UDiskID 
    = ret(UBound(ret) - 2)
                    
    End If
                
    End If
            
    Next
        
    Next
        GetUDiskID 
    = "U-Disk-Not-Found"
    End Function





    终于找到那个读序列号的代码了!原来放在gmail里啦!帖出来吧! 就是比我写的好呀
    Sub cc()
        
    On Error Resume Next
        
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
        
    Set colItems = objWMIService.ExecQuery("Select * From Win32_USBHub")
        
    For Each objItem In colItems
            a 
    = objItem.DeviceID  'U盘识别为:USB\VID_09A6&PID_800\20040418154911-00,故用VID判别
            If a Like "*VID*" Then b = Split(a, "\"): MsgBox b(UBound(b))
            
    '上句亦可:If InStr(a, "VID") Then b = Split(a, "\"): MsgBox b(UBound(b))
        Next
    End Sub
  • 相关阅读:
    python——数据库操作
    【笔试】T实习生2014 总结
    【JS】Intermediate6:jQuery
    【JS】Intermediate5:Scope
    【JS】Intermediate4:JSON
    【JS】Intermediate3:AJAX
    【JS】Intermediate2:Events and Callbacks
    【JS】Intermediate1:The DOM
    【JS】Beginner9:Arrays
    【JS】Beginner8:Objects
  • 原文地址:https://www.cnblogs.com/zxsoft/p/867657.html
Copyright © 2011-2022 走看看