Vbscript 如何通过解析PID和VID来判断USB是否已插入

Vbscript 如何通过解析PID和VID来判断USB是否已插入,vbscript,usb,detect,Vbscript,Usb,Detect,首先我要感谢你抽出时间阅读我的帖子。 我需要一个Visual basic或VBSCript代码,可以检测是否插入了特定的USB。 我有以下信息: 参见第0DF7节 PID_0620 我的代码不想工作:(我不知道如何使它只读一个特定的视频和Pid:(请不要仅仅因为我不知道如何做一些事情就把我的帖子翻下来。)。 我在网上找到了很多例子,但实际上是为了告诉所有插入设备的PID和VID是什么…所以…我不需要它们 我的代码: strComputer = "." Set objWMIService = G

首先我要感谢你抽出时间阅读我的帖子。 我需要一个Visual basic或VBSCript代码,可以检测是否插入了特定的USB。 我有以下信息:

参见第0DF7节 PID_0620

我的代码不想工作:(我不知道如何使它只读一个特定的视频和Pid:(请不要仅仅因为我不知道如何做一些事情就把我的帖子翻下来。)。 我在网上找到了很多例子,但实际上是为了告诉所有插入设备的PID和VID是什么…所以…我不需要它们

我的代码:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colDevices = objWMIService.ExecQuery _
    ("Select * From Win32_USBControllerDevice")

For Each objDevice in colDevices
    strDeviceName = objDevice.Dependent
    strQuotes = Chr(34)
    strDeviceName = Replace(strDeviceName, strQuotes, "")
    arrDeviceNames = Split(strDeviceName, "=")
    strDeviceName = arrDeviceNames(1)
    Set colUSBDevices = objWMIService.ExecQuery _
        ("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'")
    For Each objUSBDevice in colUSBDevices
        Wscript.Echo objUSBDevice.Description
    Next    
Next

谢谢!

像这样的方法应该会奏效:

Set wmi = GetObject("winmgmts://./root/cimv2")

vid = "VID_0DF7"
pid = "PID_0620"

For Each d In wmi.ExecQuery("SELECT * FROM Win32_USBControllerDevice")
  If InStr(d.Dependent, vid & "&" & pid) > 0 Then
    WScript.Echo wmi.Get(d.Dependent).Description
  End If
Next
如果在没有符合条件的设备时需要通知,则无法在循环内实现
Else
分支。嵌套的
Else
将为每个不符合条件的设备触发,而只有当没有任何设备符合条件时才需要通知。请使用更改为的布尔值
True
找到匹配设备时:

found = False
For Each d In wmi.ExecQuery("SELECT * FROM Win32_USBControllerDevice")
  If InStr(d.Dependent, vid & "&" & pid) > 0 Then
    WScript.Echo wmi.Get(d.Dependent).Description
    found = True
  End If
Next

If Not found Then WScript.Echo "USB not found."
found=False
对于wmi.ExecQuery中的每个d(“从Win32\u USBControllerDevice中选择*)
如果仪表(依赖于d.d,vid&“&”和pid)>0,则
WScript.Echo wmi.Get(依赖于d.Dependent)。说明
找到=真
如果结束
下一个

如果找不到,那么WScript.Echo“USB找不到”。
我能说什么?你是个天才!谢谢!!!还有一个问题,我怎样才能用其他的来完成?(如果有,说其他的,“USB找不到”?:)谢谢你无数次!