Привет всем!
Возникла идея написать приложение на подобии
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?
Небольшой пример кода:
spoilerusing 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
USB Mass Storage Device
Мне же нужно получить список этих свойств:
Подскажите, пожалуйста, в каком направлении мне идти?