Some examples of using [TWAPI] with USB. ***Enumerate human-friendly names for USB devices*** ====== proc usb_enum {} { set wmi [wmi_root] set devices [$wmi ExecQuery {Select * from win32_usbcontrollerdevice}] $devices -iterate -cleanup device { set dependent [$device Dependent] if {[regexp -nocase {win32_pnpentity\.deviceid="(.*)"} $dependent -> id]} { set pnp_entities [$wmi ExecQuery "select * from win32_pnpentity where deviceid='$id'"] $pnp_entities -iterate -cleanup pnp_entity { puts [$pnp_entity Description] } $pnp_entities -destroy } } $devices -destroy $wmi -destroy } (tcl) 170 % usb_enum USB Root Hub (xHCI) USB Root Hub Generic USB Hub USB Composite Device Lenovo EasyCamera Intel(R) Centrino(R) Wireless Bluetooth(R) 4.0 + High Speed Adapter .... ====== <> COM | Windows | System Administration