2010-12-29 5 views
7

midiOutGetDevCaps 함수는 MIDIOUTCAPS 구조체를 반환합니다. Windows XP에서 USB MIDI USB 장치를 쿼리 할 때 자세한 정보가 필요합니다. 특히 장치 관리자를 사용하여 해당 장치를 열 때 "위치"아래에 표시된 정보가 필요합니다. 컴퓨터에 연결된 여러 MIDI 인터페이스를 프로그래밍 방식으로 구분하려면이 정보가 필요합니다. midiOutGetDevCaps를 사용하면 컴퓨터에 연결된 모든 MIDI USB 인터페이스에 대해 "USB 오디오 장치"를 균등하게 얻으므로 인터페이스를 구별하는 것은 불가능합니다.설상가상으로이 문자열은 현지화되어 있습니다. 독일의 Windows에서는 "USB Audio Device"대신 "USB Audiogerät"가 표시됩니다.windows에서 자세한 usb 미디 장치 정보 검색 xp

+1

정말 이에 대한 대답이 있기를 바랍니다. 나는 똑같은 문제를 겪었다. 그러나 나는 거기 있다고 생각하지 않는다. 내가 사용한 오디오 및 DAW 소프트웨어에는 모두 동일한 문제가 있습니다 ... 동일한 이름의 장치를 임의로 열거합니다. MIDI 기기는 USB 나 하드웨어와의 고유 한 연결이 없다는 것을 기억하십시오. 장치를 하드웨어 아이디어와 연결하는 것은 어쨌든 갈 방법이 아닐지 모르지만 실행 가능한 솔루션을 모릅니다. – Brad

+0

제조업체 및 제품 ID는 무엇을 말합니까? 그래도 같은 장치가 2 개 꽂혀 있다면 문제가 발생할 것 같아 ... – Goz

답변

1

나는 당신이 얼마나 절망적인가에 달려 있다고 생각합니다. 나는 USB 장치로 내 자신을 실행했습니다. 제 경우에는 특정 USB COM 포트 관련 장치를 열거해야했습니다. . . 현재 시스템에 연결되어 있는지 여부에 관계없이

그것은 모든 회사의 고유 코드가 미안 내가 그것을 게시 할 수 없습니다,하지만 USB 관련 장치에 관한 모든 정보에 대한 검색은 여기서 시작 (펄) : 메모리 나를 제공하는 경우

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

그것은 정직하고 합리적이다 구조. 나는 당신이 실제로 당신이 필요로하는 모든 것을 얻으려면 레지스트리의 두 개의 분리 된 섹션을 통해 반복해야한다고 생각합니다. . . 이것을 시도 할 필사적이라면 가능한 한 질문에 답할 수있어서 기쁘지만 게시 코드는 법무부의 승인을 받아야합니다. (불가능하지는 않지만 얻는 데 몇 주가 걸릴 것입니다.)

또한 XP에서는 작동합니다. . . 어떻게 Win7에서 작동할지 모르겠다. (어느 쪽인지 모르겠지만 아무도 그것을 시도하지 않았다. 나는 알고있다.)

코딩이 그렇게 나쁘지는 않다. 결과로 Perl 스크립트는 거의 50 %의 주석이 달린 약 1000 줄의 코드이다. 열쇠와 특별한 경우 사이의 모든 관계를 해결하는 데는 며칠이 걸렸습니다.

관련 문제