|
Получение длинных имен аудиоустройств на Vista/Win7
|
|||
---|---|---|---|
#18+
Ну, начало здесь. 13101290 Только вопрос перестал соответствовать названию той темы, посему решил открыть новую. Дмитрий77Мне очень не нравится, ваш же код это показывает: Код: vbnet 1. 2. 3. 4. 5. 6.
Хотя это и не мешает выбирать подобный девайс на Win7 (благодаря тому что согласно структуре кода этот глюк "обратимый"). Сейчас работаю в этом направлении. Хотя направление решения уже найдено: Идея: waveOutGetDevCaps, Win7 and long device names Кажется реализация: http://files.codes-sources.com/fichier_fullscreen.aspx?id=47768&f=class%2FclsAfMasterVolume.cls]class/clsAfMasterVolume.cls du code source VOLUME MASTER : ETAT VOLUME WINDOWS - MODIFIER LE VOLUME, LE MUTE, ET OBTENIR DES INFORMATIONS SUR LA CARTE SON [MODULE DE CLASSE] Если удастся допилить, возможно выложу. Короче удалось таки распилить и допилить. Глядя на этот пример . Француз если не ошибаюсь вообще до ассамблера дошел со своей Код: vbnet 1.
при этом до иглы добраться не сумел. У немцев все проще: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Переложил на французский пример, выяснилось что куча структур по сути то и не нужна, а нужно знать только "номер функции" в структуре. И француз похоже эти номера перепутал на самом интересном месте, пришлось подбирать методом тыка. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Плюс используется странный тип As IUnknown , VB его "не предлагает", но как ни странно съедает, этого не понимаю. Короче получилось (полный тестовый проект приложен): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106.
Остались правда вопросы: 1) Данный код выводит AudioDevices->Player А нужно еще AudioDevices->Recorder 2) Там возвращается Unicode-строка Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
и если винда русская то при стандартном преобразовании -знаки вопроса. А мне надо получить ANSI я так понимаю независимо от языка. Ладно, создам отдельную тему про это. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2012, 10:39 |
|
Получение длинных имен аудиоустройств на Vista/Win7
|
|||
---|---|---|---|
#18+
Дмитрий77Остались правда вопросы: 1) Данный код выводит AudioDevices->Player А нужно еще AudioDevices->Recorder Кажется понял: Код: vbnet 1. 2. 3. 4. 5. 6.
Не понимаю почему в списке нет "мутных" девайсов типа "Modem #4 Line Playback", waveOutGetDevCaps/waveInGetDevCaps их показывают (и многие проги их показывают), в XP в панель управления -> аудио они есть, в Win 7 в панели чего-то не нахожу (хотя wave... выдают их). Миксер-контролов volume/mute у них нет. С чем есть никогда не понимал. Но подозреваю что их имена никогда не будут больше 31 символа. Не объяснит никто? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2012, 12:12 |
|
|
start [/forum/topic.php?fid=60&msg=37942596&tid=2157468]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 422ms |
0 / 0 |