Die Funktion midiOutGetDevCaps gibt eine Struktur MIDIOUTCAPS zurück. Ich würde spezifischere Informationen benötigen, wenn ich ein USB-Midi-Gerät auf Windows XP abfrage, insbesondere würde ich die unter "Ort" angezeigten Informationen benötigen, wenn ich das entsprechende Gerät über den Geräte-Manager öffne. Ich brauche diese Informationen, um programmgesteuert zwischen mehreren MIDI-Schnittstellen zu unterscheiden, die an einen Computer angeschlossen sind. Unter Verwendung von midiOutGetDevCaps erhalte ich für jede Midi-USB-Schnittstelle, die mit dem Computer verbunden ist, einheitlich ein "USB-Audiogerät", so dass eine Unterscheidung zwischen den Schnittstellen unmöglich ist. Um die Sache noch schlimmer zu machen, ist diese Zeichenfolge lokalisiert, so z.B. Bei einem deutschen Windows erhalten Sie anstelle des "USB Audio Device" ein "USB-Audiogerät".Abrufen von detaillierten USB-Midi-Geräteinformationen auf Windows XP
Antwort
Ich denke, es hängt davon ab, wie verzweifelt du bist. Ich habe selbst mit USB-Geräten gerannt. In meinem Fall musste ich bestimmte USB-COM-Port-Geräte aufzählen. . . unabhängig davon, ob sie derzeit an das System angeschlossen sind oder nicht.
Es ist alles Unternehmen proprietären Code, sorry ich es nicht veröffentlichen können, aber die Suche für alle Informationen in Bezug auf USB-verwandte Geräte beginnt hier (Perl):
$hostnamePrefix = "//$hostname/";
my $baseKey = "${hostnamePrefix}HKEY_LOCAL_MACHINE/System/CurrentControlSet/";
my $regVidList = Win32::TieRegistry->new("${baseKey}Enum/USB/", $optionsRef);
Wenn ich mich recht erinnere es ist ein ziemlich geradlinig Struktur. Ich glaube, Sie müssen tatsächlich zwei separate Abschnitte der Registrierung durchlaufen, um alles zu bekommen, was Sie brauchen. . . Wenn Sie verzweifelt genug sind, dies zu versuchen, bin ich froh, Fragen zu beantworten, wo ich kann, aber das Veröffentlichen von Code würde Genehmigung von unserer Rechtsabteilung erfordern. (Nicht unmöglich, aber es würde Wochen dauern, zu erhalten.)
Auch, während dies auf XP funktioniert. . . Ich habe keine Ahnung, wie es mit Win7 funktioniert. (Ich weiß auch nicht, niemand hat es schon probiert.)
Codierung das war nicht so schlimm (resultierend Perl Script ist etwa 1000 Zeilen Code, der fast 50% Kommentare ist), aber Das Ausarbeiten aller Beziehungen zwischen den Schlüsseln und den Sonderfällen dauerte mehrere Tage.
Ich hoffe wirklich, dass es eine Antwort darauf gibt. Ich hatte das gleiche Problem. Aber ich glaube nicht, dass es da ist. Alle Audio-und DAW-Software, die ich verwendet habe, haben das gleiche Problem ... Aufzählung Geräte mit dem gleichen Namen nach dem Zufallsprinzip. Denken Sie daran, dass MIDI-Geräte keine inhärente Verbindung mit USB oder irgendeiner anderen Hardware haben. Geräte mit einer Hardware-Idee zu verbinden, ist zwar nicht der richtige Weg, aber ich kenne keine praktikable Lösung. – Brad
Was sagen Ihnen die Hersteller- und Produkt-IDs? Ich nehme an, Sie würden immer noch Probleme bekommen, wenn Sie 2 der gleichen Geräte angeschlossen haben, aber ... – Goz