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
  • 相关阅读:
    VC6.0图形处理7边缘检测
    VC6.0图像处理0bmp文件分析
    java版QQ 欢迎点评
    VC6.0图像处理3灰度变换
    VC6.0图形处理6图像增强
    VC6.0图像处理1浏览图片
    VC6.0图像处理4镜像
    一个软件行业中层主管在年底给团队成员的一封信
    SQL的EXISTS与in、not exists与not in 效率比较和使用
    按某字段合并字符串
  • 原文地址:https://www.cnblogs.com/zxsoft/p/867657.html
Copyright © 2011-2022 走看看