Using C# you can query the PnP devices on the system by running:
using (var search = new ManagementObjectSearcher(@"Select * From Win32_PnPEntity Where DeviceID Like ""USB%"""))
{
using (var collection = search.Get())
{
foreach (var device in collection)
{
Console.WriteLine($"Device ${device.GetPropertyValue("DeviceID")}:");
foreach (var prop in device.Properties)
Console.WriteLine($"- ${prop.Name} = ${prop.Value}");
}
}
}
One of these properties is
Name
which generally gives a slightly more helpful identifier for the device. It's not perfect though but it could give a good starting point if you're producing dropdown lists that someone can select.