2011-09-10 69 views

回答

3

您可以通過使用WMI獲得它,但WMI中沒有連接USB設備的動態類。
需要一些關聯信息USB設備與插入設備,以獲得插入。
因此,考慮這個例子:

Option Explicit 
Dim oWMISrv, collDvcs, collUSBDvcs, iUSBDvc , iDvc, sDvcID, sPID, sVID 

Function ReplaceX(ByVal sValue, ByVal sPattern, ByVal sNValue) 
    Dim oReg : Set oReg = New RegExp 
    oReg.Pattern = sPattern 
    ReplaceX = oReg.Replace(sValue, sNValue) 
    Set oReg = Nothing 
End Function 

Set oWMISrv = GetObject("winmgmts:\\.\root\cimv2") 
Set collDvcs = oWMISrv.ExecQuery("Select * From Win32_USBControllerDevice") 

For Each iDvc In collDvcs 
    If InStr(iDvc.Dependent, "VID_") Then ' Except keychain drives 

     sDvcID = ReplaceX(iDvc.Dependent, ".*""(.*)""", "$1") 
     sPID = ReplaceX(sDvcID, ".*PID_([^\\]*).*", "$1") 
     sVID = ReplaceX(sDvcID, ".*VID_([^&]*).*", "$1") 

     Set collUSBDvcs = oWMISrv.ExecQuery _ 
     ("Select * From Win32_PnPEntity Where DeviceID = '" & sDvcID & "'") 
     For Each iUSBDvc in collUSBDvcs 
      Wscript.Echo "Name : "& iUSBDvc.Description 
      Wscript.Echo "VID : "& sVID 
      Wscript.Echo "PID : "& sPID 
      Wscript.Echo String(50, "-") 
     Next 
     Set collUSBDvcs = Nothing 

    End If 
Next 

Set collDvcs = Nothing 
Set oWMISrv = Nothing 
+0

感謝,但真的找一個腳本,只顯示所連接設備的VIP/PID,你幫了我很多,我應該說聲謝謝:) – Nofuzy