Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2016, 14:52   #1
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
Восклицание Полное имя аудиоустройства

Как известно, szPname в WAVEOUTCAPS содержит только 31 букву имени аудиоустройства. Я же хочу получить полное имя. В инете нахожу инфу только лишь об использовании расширенного формата WAVEOUTCAPS2 с последующим получением имени из реестра. Если я правильно понимаю, то NameGiud из WAVEOUTCAPS2 должно содержать GUID с именем ключа реестра в разделе HKLM\System\CurrentControlSet\Contr ol\MediaCategories. Однако на практике всё иначе: NameGiud содержит нули, а значения ProductGuid, как и ManufacturerGuid совпадают на всех девайсах.
Код:
type
  TWAVEOUTCAPS2 = packed record
    C: TWAVEOUTCAPS;
    ManufacturerGuid: TGUID;
    ProductGuid: TGUID;
    NameGuid: TGUID
  end;

var
  i: Integer;
  DevOut: TWAVEOUTCAPS2;

begin
  for i := -1 to waveOutGetNumDevs-1 do
  begin
    FillChar(DevOut, SizeOf(DevOut), 1);
    if waveOutGetDevCaps(i, @DevOut, SizeOf(DevOut)) = MMSYSERR_NOERROR then ComboBox1.Items.Add(DevOut.C.szPname + ' / ' + GUIDToString(DevOut.NameGuid))
  end;
  ComboBox1.ItemIndex := 0
end;
Может, я что-то не так делаю, хотя вряд ли.
Какие есть ещё способы? Рабочие...
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
7in вне форума Ответить с цитированием
Старый 10.02.2016, 19:13   #2
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Сообщений: 295
По умолчанию

FillChar заполняет нулями, конечно, а не единицами. Это опечатка
Но результат то же
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
7in вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аудиоустройства по умолчанию PTyTb32 Мультимедиа в Delphi 0 18.06.2014 16:35
Программа заполняет массив из 10 записей с 3-мя полями (фамилия, имя, полное число лет) из файла. PasDeNom Паскаль, Turbo Pascal, PascalABC.NET 3 10.04.2012 14:27
Полное окно Максим139 Помощь студентам 4 21.03.2011 23:27
Узнать имя листа, если известно кодовое имя tae1980 Microsoft Office Excel 3 20.03.2011 21:57
Полное форматирование харда. CepnyX Операционные системы общие вопросы 8 06.07.2008 23:13