A while back I had check and see if a device was connected and ready to continue with some automation. That’s when I wrote the function below.
With this function you can get the list of all the connected devices by name, by ID with the optional search in Windows using AutoIT.
;Function Name: Get (Connected) Devices
;Written By: Amin Babaeipanah
;Usage: _getDevices(1,'')
;_getDevices("search for", flag)
;"search for": can be set to empty to list everything
;flag:
; 1 = List Device Name(s)
; 2 = List Device ID(s)
; 3 = List Device Name(s) @ Device ID(s)
;Example 1:
; Code below will list all the connected devices by name
; _getDevices('',1)
; Code below will list all the connected devices by ID
; _getDevices('',2)
; Code below will list all the connected devices by name that has the word "COM"
; _getDevices('COM',1)
Func _getDevices($name,$type)
Local $objWMIService = ObjGet('winmgmts:\\localhost\root\CIMV2')
Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PnPEntity WHERE Name LIKE '%"&$name&"%'", "WQL", 48)
If IsObj($colItems) Then
If $type = 1 Then
For $objItem In $colItems
ConsoleWrite($objItem.Name&@LF)
Next
ElseIf $type = 2 Then
For $objItem In $colItems
ConsoleWrite($objItem.PNPDeviceID&@LF)
Next
ElseIf $type = 3 Then
For $objItem In $colItems
ConsoleWrite($objItem.Name&'@'&$objItem.PNPDeviceID&@LF)
Next
EndIf
EndIf
EndFunc