@hax
junior developer

Как программно получить список всех свойств устройства в Device Manager'e?

Привет всем!
Возникла идея написать приложение на подобии USBDeview (приложение, отображающее все подключенные на данный момент USB девайсы). Хочу также реализовать функционал включения/выключения USB устройства по расписанию (USBDeview тоже так умеет). Все манипуляции провожу через запросы к WMI . Столкнулся с рядом проблем:
1. При подключении нового USB устройства появляются два девайса - USB Mass Storage Device и Disk Drive. Какое из включать/выключать, чтобы USB устройство правильно отключилось?
2. Запрос "select * from Win32_PnpEntity" возвращает довольно скудный набор свойств (например отсутствуют нужные мне параметры, такие как Matching device Id, Class, Is connected и т.д. - все эти параметры есть в Device Manager'e во вкладке Details). Отсюда вытекает вопрос. Как отобразить ВСЕ свойства, которые есть в Device Manager'e?
Небольшой пример кода:
spoiler
using System;
using System.Management;

namespace TestRequest
{
    class Program
    {
        static void Main(string[] args)
        {
           ManagementObjectCollection collection;
            using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_PnpEntity"))
                collection = searcher.Get();

            foreach (var device in collection)
            {
                Console.WriteLine("===================================");
                foreach (var prop in device.Properties)
                    Console.WriteLine("\t{0} : {1}", prop.Name, prop.Value);
                Console.WriteLine("===================================");
            }

            collection.Dispose();

            Console.Read();
        }
    }
}


При подключении флешки появляется два новых устройства:
Disk Drive 5a2104e473c94284327513.png
USB Mass Storage Device 5a2104f89913c951240432.png

Мне же нужно получить список этих свойств: 5a21058491bce799301529.png

Подскажите, пожалуйста, в каком направлении мне идти?
  • Вопрос задан
  • 1300 просмотров
Решения вопроса 1
@hax Автор вопроса
junior developer
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Kubatai
@Kubatai
Техник-программист
1. Для отключения используйте USB Mass Storage Device
2. Для получения более подробной информации о устройствах используйте запрос: "Select * From Win32_USBHub"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы