2010-12-29 7 views
7

Funkcja midiOutGetDevCaps zwraca strukturę MIDIOUTCAPS. Potrzebuję więcej szczegółowych informacji podczas odpytywania urządzenia MIDI USB na Windows XP, w szczególności potrzebowałbym informacji wyświetlanych pod "Lokalizacja" podczas otwierania odpowiedniego urządzenia za pomocą Menedżera urządzeń. Potrzebuję tych informacji, aby programowo odróżnić kilka interfejsów MIDI podłączonych do komputera. Korzystając z midiOutGetDevCaps, uzyskuję jednolite "urządzenie USB Audio" dla każdego interfejsu MIDI USB podłączonego do komputera, więc rozróżnienie między interfejsami jest niemożliwe. Co gorsza, ten ciąg jest zlokalizowany, np. na niemieckim Windowsie otrzymasz "USB Audiogerät" zamiast "USB Audio Device".pobieranie szczegółowych informacji o urządzeniu midi w urządzeniach USB na Windows XP

+1

Naprawdę mam nadzieję, że istnieje odpowiedź na to pytanie. Miałem ten sam problem. Jednak nie sądzę, że istnieje. Wszystkie używane przeze mnie oprogramowanie audio i DAW ma ten sam problem ... wyliczanie urządzeń o tej samej nazwie losowo. Pamiętaj, że urządzenia MIDI nie mają nieodłącznego połączenia z USB lub jakimkolwiek sprzętem. Powiązanie urządzeń z pomysłem sprzętowym może i tak nie jest dobrym pomysłem, ale nie znam praktycznego rozwiązania. – Brad

+0

Co mówią producent i identyfikatory produktu? Wydaje mi się, że nadal masz problemy, jeśli masz dwa takie same urządzenia podłączone ... – Goz

Odpowiedz

1

To zależy od tego, jak bardzo jesteś zdesperowany. Miałem swoje własne uruchomienia z urządzeniami USB. W moim przypadku musiałem wymienić niektóre urządzenia powiązane z portem USB COM. . . niezależnie od tego, czy są obecnie podłączone do systemu, czy nie.

To wszystko jest firma zastrzeżony kod, przepraszam, nie mogę pisać, ale poszukiwanie wszelkich informacji dotyczących urządzeń USB związane zaczyna się tutaj (Perl):

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

Jeśli mnie pamięć nie myli to dość prosto do przodu Struktura. Wierzę, że faktycznie trzeba przechodzić przez dwie oddzielne sekcje rejestru, aby uzyskać wszystko, czego potrzebujesz. . . jeśli jesteś wystarczająco zdesperowany, aby spróbować, chętnie odpowiem na pytania, ale mogę się na to zgodzić, ale opublikowanie kodu wymagałoby zgody naszego działu prawnego. (Nie jest to niemożliwe, ale uzyskanie tego zajmie tygodnie).

Ponadto, chociaż będzie działać na XP. . . Nie mam pojęcia, jak to będzie działać na Win7. (Nie wiem tak, nikt jeszcze nie próbował tego, o czym wiem.)

Kodowanie to nie było takie złe (wynikowy skrypt Perla to około 1000 linii kodu, co stanowi prawie 50% komentarzy), ale wypracowanie wszystkich relacji między kluczami i specjalnych przypadków zajęło kilka dni.

Powiązane problemy