2010-12-29 35 views
7

Chức năng midiOutGetDevCaps trả về cấu trúc MIDIOUTCAPS. Tôi cần thông tin cụ thể hơn khi truy vấn thiết bị midi usb trên windows xp, đặc biệt tôi cần thông tin được hiển thị trong "Vị trí" khi mở thiết bị tương ứng bằng Trình quản lý thiết bị. Tôi cần thông tin này để phân biệt theo chương trình giữa một số Giao diện MIDI được kết nối với máy tính. Sử dụng midiOutGetDevCaps, tôi đồng bộ nhận "Thiết bị âm thanh USB" cho mọi giao diện usb midi được kết nối với máy tính, vì vậy việc phân biệt giữa các giao diện là không thể. Để làm cho vấn đề tồi tệ hơn, chuỗi này được bản địa hóa, ví dụ: trên Windows tiếng Đức, bạn sẽ nhận được "USB Audiogerät" thay vì "USB Audio Device".truy xuất thông tin thiết bị midi usb chi tiết trên windows xp

+1

Tôi thực sự hy vọng có một câu trả lời cho điều này. Tôi đã có cùng một vấn đề. Tuy nhiên, tôi không nghĩ là có. Tất cả phần mềm âm thanh và DAW tôi đã sử dụng đều có cùng sự cố này ... liệt kê các thiết bị có cùng tên một cách ngẫu nhiên. Hãy nhớ rằng, các thiết bị MIDI không có kết nối cố hữu với USB hoặc bất kỳ phần cứng nào cho vấn đề đó. Việc kết hợp các thiết bị với một ý tưởng phần cứng có thể không phải là cách để đi anyway, nhưng tôi không biết một giải pháp khả thi. – Brad

+0

ID nhà sản xuất và sản phẩm cho bạn biết điều gì? Tôi đoán bạn vẫn gặp sự cố nếu bạn có 2 thiết bị tương tự được cắm vào ... – Goz

Trả lời

1

Tôi đoán nó phụ thuộc vào mức độ tuyệt vọng của bạn. Tôi đã có của riêng tôi chạy với các thiết bị USB. Trong trường hợp của tôi, tôi cần liệt kê một số thiết bị liên quan đến cổng USB COM nhất định. . . bất kể chúng có được gắn với hệ thống hay không.

Đó là tất cả công ty mã độc quyền, xin lỗi tôi không thể đăng nó, nhưng việc tìm kiếm tất cả các thông tin liên quan đến các thiết bị liên quan đến USB bắt đầu ở đây (Perl):

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

Nếu bộ nhớ phục vụ cho tôi đó là một cách hợp lý thẳng về phía trước kết cấu. Tôi tin rằng bạn thực sự phải lặp qua hai phần riêng biệt của sổ đăng ký để có mọi thứ bạn cần. . . nếu bạn đủ tuyệt vọng để thực hiện điều này, tôi rất sẵn lòng trả lời các câu hỏi mà tôi có thể, nhưng việc đăng mã sẽ yêu cầu sự chấp thuận của bộ phận pháp lý của chúng tôi. (Không phải không thể, nhưng phải mất vài tuần để có được.)

Ngoài ra, trong khi điều này sẽ hoạt động trên XP. . . Tôi không biết nó sẽ hoạt động như thế nào trên Win7. (Tôi không biết một trong hai cách, không ai đã thử nó được nêu ra mà tôi biết.)

Mã hóa điều này không phải là xấu (kết quả Perl Script là khoảng 1000 dòng mã đó là gần 50% ý kiến), nhưng làm việc ra tất cả các mối quan hệ giữa các phím và các trường hợp đặc biệt mất vài ngày.

Các vấn đề liên quan