Перечисление портативных устройств Windows на C#C#

Место общения программистов C#
Anonymous
Перечисление портативных устройств Windows на C#

Сообщение Anonymous »

Я пытаюсь перечислить подключенные портативные устройства в Windows с помощью API портативных устройств Windows и PortableDeviceManager, предоставляемого этим API.

Я реализовал перечисление идентификаторов устройств по ссылке на документацию MSDN и ссылкам на различные блоги, но все они приводят к одной и той же проблеме — я могу получить идентификатор одного устройства только тогда, когда их несколько подключено.

Вот фрагмент кода C#, который я использую:

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

PortableDeviceManagerClass deviceManager = new PortableDeviceManagerClass();
deviceManager.RefreshDeviceList();

uint numberOfDevices = 1;
deviceManager.GetDevices(null, ref numberOfDevices);

if (numberOfDevices == 0)
{
return new string[0];
}

string [] deviceIds = new string[numberOfDevices];
deviceManager.GetDevices(ref deviceIds[0], ref numberOfDevices);

return deviceIds;
К моему компьютеру подключено два устройства: один съемный USB-накопитель и одна цифровая камера. Когда оба активны, будет возвращен только идентификатор устройства моей камеры. Когда я деактивирую камеру, возвращается идентификатор устройства съемного USB-накопителя.

Есть ли кто-нибудь, имеющий опыт работы с этим API, который может указать мне, что я делаю неправильно?

Подробнее здесь: https://stackoverflow.com/questions/616 ... in-c-sharp

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