Получение подробной информации об USB-устройстве MIDI на Windows XP - PullRequest
7 голосов
/ 29 декабря 2010

Функция midiOutGetDevCaps возвращает структуру MIDIOUTCAPS. Мне нужна более конкретная информация при запросе USB-устройства MIDI на Windows XP, в частности, мне нужна информация, отображаемая в разделе «Расположение» при открытии соответствующего устройства с помощью диспетчера устройств. Мне нужна эта информация для того, чтобы программно различать несколько MIDI-интерфейсов, подключенных к компьютеру. Используя midiOutGetDevCaps, я единообразно получаю «USB Audio Device» для каждого MIDI-интерфейса USB, подключенного к компьютеру, поэтому различать интерфейсы невозможно. Что еще хуже, эта строка локализована, например, в немецкой Windows вместо «USB Audio Device» вы получите «USB Audiogerät».

1 Ответ

1 голос
/ 09 января 2011

Полагаю, это зависит от того, насколько вы в отчаянии. У меня был свой опыт работы с USB-устройствами. В моем случае мне нужно было перечислить некоторые устройства, связанные с USB-портом. , , независимо от того, подключены ли они в настоящее время к системе или нет.

Это весь фирменный код компании, извините, я не могу опубликовать его, но поиск всей информации, касающейся USB-устройств, начинается здесь (Perl):

$hostnamePrefix = "//$hostname/";
my $baseKey = "${hostnamePrefix}HKEY_LOCAL_MACHINE/System/CurrentControlSet/";
my $regVidList = Win32::TieRegistry->new("${baseKey}Enum/USB/", $optionsRef);

Если мне не изменяет память, это достаточно прямолинейная структура. Я считаю, что вам действительно нужно пройтись по двум отдельным разделам реестра, чтобы получить все необходимое. , , если вы достаточно отчаянны, чтобы попытаться это сделать, я с удовольствием отвечу на вопросы, где могу, но для публикации кода требуется одобрение нашего юридического отдела. (Не невозможно, но это займет недели.)

Также пока это будет работать на XP. , , Я понятия не имею, как это будет работать на Win7. (Я не знаю, так или иначе, никто еще не пробовал это, о чем я знаю.)

Кодирование это было не так уж плохо (в результате Perl Script составляет около 1000 строк кода, что составляет почти 50% комментариев), но разработка всех взаимосвязей между ключами и особыми случаями заняла несколько дней.

...