Получить iProduct и iSerialNumber с подключенного USB-устройства.C#

Место общения программистов C#
Ответить
Anonymous
 Получить iProduct и iSerialNumber с подключенного USB-устройства.

Сообщение Anonymous »

У меня есть печатная плата с микроконтроллером, на котором есть периферийное устройство USB, подключенное к ПК, и я пишу пользовательский интерфейс для работы с ним. Порт USB настроен в устройстве как порт Comm, поэтому при подключении он выглядит как «COMx». Я хочу, чтобы мое устройство определяло, является ли это правильным COM-портом, просматривая строки iSerialNumber и iProduct в блоке дескриптора. Я уже могу найти все коммуникационные порты в списке USB-устройств с помощью этих двух функций:

Код: Выделить всё

    public string[] FindAllPorts()
{
List ports = new List();

foreach (ManagementObject obj in FindPorts())
{
try
{
if (obj["Caption"].ToString().Contains("(COM"))
{
string ComName = ParseCommName(obj);
if (ComName != null)
{
ports.Add(ComName);
}
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
}

return ports.ToArray();
}

static ManagementObject[] FindPorts()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity");
List objects = new List();

foreach (ManagementObject obj in searcher.Get())
{
objects.Add(obj);
}

return objects.ToArray();
}
catch (Exception e)
{
Console.WriteLine(e);
return new ManagementObject[] { };
}
}
и я могу найти название (или производителя, описание и т. д.) следующим образом:

Код: Выделить всё

    public List ListPortsByName()
{
List nameList = new List();

foreach (ManagementObject obj in FindPorts())
{
try
{
if (obj["Caption"].ToString().Contains("(COM"))
nameList.Add(obj["Name"].ToString());
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
return nameList;
}
но замена «Имя» на «iProduct» не дает мне строку продукта, поэтому должен быть другой способ получить блок строкового дескриптора и извлечь из него информацию.Любая помощь будет оценена по достоинству. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/787 ... usb-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»