Как изменить аудиоустройство по умолчанию по умолчанию для воспроизведения и записывающий в перспективе программно?
Там какой-либо реестр устанавливает для него как звуковой менеджер в Window XP?
Который API делает это?
Обязательно сделайте это в установщике, если вам вообще нужно это сделать.
Во-первых, установщик, вероятно, называется реже, чем приемники, поэтому вы выполняете меньше работы.
Во-вторых, вы поймете проблему раньше.
В-третьих, он обеспечивает согласованность внутреннего состояния объекта. Сохранение плохих данных означает, что вы знаете, что ваш объект «прав».
-121--4407470-Просто используйте класс StreamWriter и Закройте файл соответствующим образом. Маркер EOF будет обработан правильно.
-121--3808409-Отсутствует открытый API, позволяющий изменить аудиоустройство по умолчанию, т.е. функциональность, которая считается находящейся под управлением пользователей. Так всегда было в Windows.
Сказав, что, если вы ищете в Интернете, есть несколько людей, которые провели обратную разработку API, которые используются в Windows Vista для этого, но я не собираюсь указывать на них (обратная разработка API являются внутренними неподдерживаемыми API и могут измениться без уведомления от Microsoft). Вы используете эти решения на свой страх и риск.
System Tray Audio Device Switcher использует "Software\Microsoft\Multimedia\Sound Mapper", "Playback"
для установки индекса звукового устройства, который был получен путем перечисления устройств.
mciSendCommand из "winmm.dll" также используется
В этом исходном коде вы найдете ключи реестра, используемые для достижения этой цели.
Если это не сработает, вы можете попробовать Process Monitor и проследить за всеми действиями реестра windows при смене устройства по умолчанию. На моей установке Vista панель управления возится с "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render\"
Для Vista см. http://www.vistaaudiochanger.com/