powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как зная GUID вытащить из реестра String, ему соответствующий
6 сообщений из 6, страница 1 из 1
Как зная GUID вытащить из реестра String, ему соответствующий
    #37940693
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Type GUID 'http://msdn.microsoft.com/en-us/library/aa379358%28v=vs.85%29.aspx
    Data1           As Long
    Data2           As Integer
    Data3           As Integer
    Data4(7)        As Byte
End Type

Private Type WAVEOUTCAPS2
  wMid As Integer
  wPid As Integer
  vDriverVersion As Long
  szPname As String * MAXPNAMELEN
  dwFormats As Long
  wChannels As Integer
  dwSupport As Long
  ManufacturerGuid As GUID
  ProductGuid As GUID
  NameGuid As GUID
End Type


Допустим я получил эту структуру, и в ней содержится этот самый NameGuid.
szPname As String * MAXPNAMELEN -это имя девайса обрезанное 31 буквой + '\0'
На висте и семерке это не катит (по крайней мере фигово смотрится).
Как мне получить "длинный NAME" из NameGuid?
(если конечно я правильно понял "документацию")
Код: vbnet
1.
2.
  Dim caps As WAVEOUTCAPS2
  If (waveOutGetDevCaps(id, caps, Len(caps)) <> 0) Then
...
Рейтинг: 0 / 0
Как зная GUID вытащить из реестра String, ему соответствующий
    #37970708
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
getsetting
...
Рейтинг: 0 / 0
Как зная GUID вытащить из реестра String, ему соответствующий
    #37971057
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

Extended Capabilities from a WDM Audio Driver
WDMAud uses the Name GUID in the KSCOMPONENTID structure to look up a "Name" key in the registry. This key is located under the registry path name HKLM\System\CurrentControlSet\Control\MediaCategories. The "Name" key for a device has an associated string value that contains the device name. The xxxGetDevCaps function copies the first 31 characters of this name string into the szPname member of the capabilities structure. For device names longer than 31 characters, a client application can open the registry key and directly read the entire string.
P.S. Не вчитывался, но осуждаю название раздела навевает подозрение о необязательности реализации.
...
Рейтинг: 0 / 0
Как зная GUID вытащить из реестра String, ему соответствующий
    #37971073
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For device names longer than 31 characters, a client application can open the registry key and directly read the entire string.
...
Рейтинг: 0 / 0
Как зная GUID вытащить из реестра String, ему соответствующий
    #37971921
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктДмитрий77,

Extended Capabilities from a WDM Audio Driver
...
P.S. Не вчитывался, но осуждаю название раздела навевает подозрение о необязательности реализации.
Ну так я именно на этот раздел тогда набрел.
Но фишка в том, что в этих доп. параметрах как правило пусто и это вообще не путь.

На XP длинных имен не бывает.
А для висты и выше я все давно сделал через Audio Core API (которые родные для этих OS).
...
Рейтинг: 0 / 0
Как зная GUID вытащить из реестра String, ему соответствующий
    #37973751
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Но фишка в том, что в этих доп. параметрах как правило пусто и это вообще не путь.1) Как это соотносится с начальным сообщением темы? Нет (нулевой) GUID, нет и имени, которое надо вытаскивать из реестра.
2) Уже в названии раздела "WDM Audio Extensions to Legacy Windows Multimedia APIs" два слова напрягают, тем более в одном предложении: "extensions" и "legacy", т. е. "расширения" и "традиционные" (читай: "морально устаревающие или уже устаревшие"). Если ещё почитать, то встречаются фразы "производитель может ...". Может, если захочет.
Дмитрий77На XP длинных имен не бывает.У меня на домашней системе (XP) более 400 подключей в MediaCategories, и есть длинные имена вроде "Sampling rate conversion for SPDIF output" (но не уверен, что среди длинных имён есть те, что возвращаются (обрезанными) waveOutGetDevCaps() ).
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как зная GUID вытащить из реестра String, ему соответствующий
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]