В Windows 7 есть несколько устройств воспроизведения.
Пример (на моем ноутбуке): колонки и двойные наушники Независимые двойные наушники SPDIF (цифровой выход через док-станцию HP)
Ситуация, таким образом, таковаЯ пишу приложение, которое позволяет пользователю выбрать устройство вывода и сохранить его в настройках приложения.Таким образом, он предлагает пользователю выбор всех устройств Directsound в выпадающем списке.Пользователь выбирает тот, который он предпочитает, и сохраняет его.
Мое требование: При первоначальной загрузке этого списка я хочу выбрать устройство по умолчанию (как установлено в Windows 7 - Панель управления -> Звук -> Воспроизведениеtab)
Итак, мой код для перечисления устройств вывода звука:
Код:
procedure TForm1.FillDevices;
var
AudioDevEnum: TSysDevEnum;
n: string;
i, ps: integer;
begin
AudioDevEnum := TSysDevEnum.Create(CLSID_AudioRendererCategory);
try
if AudioDevEnum.CountFilters = 0 then
Exit;
for i := 0 to AudioDevEnum.CountFilters - 1 do
begin
n := AudioDevEnum.Filters[i].FriendlyName;
ps := pos('DirectSound: ', n);
if ps <> 0 then
begin
ps := pos('Modem', n);
if ps = 0 then
begin
// Delete(n, 1, 13);
lstDevices.Items.Add(n);
end;
end;
end;
lstDevices.ItemIndex := 0;
finally
AudioDevEnum.Free;
end;
end;
После получения списка я хочу обнаружить элемент, который установленв качестве «устройства по умолчанию» на панели управления звуком и выберите его.Это сделано для того, чтобы приложение в первый раз сохраняло правильное устройство без необходимости выполнения этой работы пользователем.
Можно ли это сделать?Как?
Заранее спасибо.
РЕДАКТИРОВАТЬ: Обратите внимание, что я хочу выбрать и сохранить (в INI-файл) устройство по умолчанию, чтобы оно могло использоваться моимприложение для вывода звука (через компонент DSPack).Я не хочу менять настройки Windows.