1

Я разрабатываю приложение, в котором мне нужно получить VID и PID всех текущих USB-устройств, подключенных к компьютеру.

Но я просто получаю VID и PID номера моих наушников, которые подключены к моему компьютеру. и не получить для мыши и клавиатуры.

Мой код работает так:

static List<USBDeviceInfo> GetUSBDevices()
    {
        List<USBDeviceInfo> devices = new List<USBDeviceInfo>();

        ManagementObjectCollection collection;
        using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_USBHub"))
            collection = searcher.Get();

        foreach (var device in collection)
        {
            devices.Add(new USBDeviceInfo(
            (string)device.GetPropertyValue("DeviceID"),
            (string)device.GetPropertyValue("PNPDeviceID"),
            (string)device.GetPropertyValue("Description")
            ));
        }

        collection.Dispose();
        return devices;
    }

Основной класс

static void Main(string[] args)
    {
       var usbDevices = GetUSBDevices();
       foreach (var usbDevice in usbDevices)
       {
        Console.WriteLine("Device ID: {0}, PNP Device ID: {1}, Description: {2}",
         usbDevice.DeviceID, usbDevice.PnpDeviceID, usbDevice.Description);
       }
      Console.Read();
     }

Теперь в случае наушников я получаю описание как USB-устройство, а в случае других устройств, подключенных к компьютеру, я получаю описание как корневой USB-концентратор

Я не знаю, почему я получаю только VID и PID только для наушников

Пожалуйста, предложите

Заранее спасибо.!!

2 ответа2

3

Концентратор - это устройство, к которому подключены другие устройства. Корневые концентраторы представляют собой контроллеры USB на материнской плате.

Составное устройство - это устройство с несколькими интерфейсами; Ваши наушники имеют два интерфейса, для управления микшером и для захвата звука.

Нормальные USB-устройства не указаны как Win32_USBHub , вы слишком заглянули в Dependent записи. См. Пример получения информации об устройствах USB с использованием WMI .

0

Я не рассматриваю кодовую часть этого вопроса - его ОТ для SU. Я не могу кодировать в любом случае

Реальная проблема в том, что вы можете смотреть не в том месте

Сначала зайдите в диспетчер устройств.

Вот мой. Я затемнил менее интересные биты и указал на полезные вещи

Моя игровая мышь представляет собой композитное устройство USB - оно состоит из двух виртуальных устройств (что в данном случае, как я предполагаю, является USB-гарнитурой). В противном случае это не появится вообще). Следовательно, он появляется в 3 местах - под HID, под клавиатурами, под мышками и другими указательными устройствами, а также в качестве контроллера USB.

Моя клавиатура отображается ТОЛЬКО под HID и Keyboards, так как она скучная, не сексуальная часть оборудования Logitech. Он НЕ ДОЛЖЕН включаться под контроллеры USB.

Короче? Вы можете просмотреть свой код и немного узнать о том, как Windows классифицирует оборудование.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .