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
  • 相关阅读:
    Git服务器配置及本地克隆提交、服务器获取
    远程编译获取控制台日志信息
    切换分支更改项目之一二事
    linux(乌班图)修改apt下载源
    表id关联数据获取至页面,制作下拉框多选进行数据多项获取(字段处理)
    实例实现测试用例自动生成
    maven一模块字段调用另一个模块数据生成下拉框
    页面搜索框日期搜索条件数据至后台的类型转换(时间戳)
    IDEA报错:Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. ('crmWatcherService'错误)
    单表(SSM、SpringBoot、SpringCloud、Freemaker、BootStrap等)
  • 原文地址:https://www.cnblogs.com/zxsoft/p/867657.html
Copyright © 2011-2022 走看看