2014-11-13 5 views
2

Каков правильный API-вызов, который я должен использовать для переименования аудиоустройства в Windows? Моя цель - изменить имя устройства, которое отображается пользователю, когда они щелкают правой кнопкой мыши значок тома и выбирают «устройства воспроизведения». Я считаю, что «дружеское имя» - это свойство, которое я хочу изменить.Как программно изменить дружественное имя аудиоустройства Windows?

Мне удалось успешно позвонить SetupDiSetDeviceProperty, который возвращает true. Если впоследствии я вызываю SetupDiGetDeviceProperty, возвращается последнее заданное значение. Однако это значение, по-видимому, существует только в контексте моего приложения - системная настройка кажется неизменной.

Есть ли другой вызов функции, который я должен назвать вместо или в дополнение к SetupDiSetDeviceProperty?

Я выполняю свое приложение как администратор, поэтому разрешения не должны быть проблемой.

+1

Я не знаю, как с использованием тех API, но если вы можете переименовать устройство через проводник, то он сможет использовать оболочку для этого. Привяжите к соответствующей папке, определите элемент и вызовите 'IShellFolder :: SetNameOf'. –

+0

Я не уверен, что вы имеете в виду. На моей машине нет объектов файловой системы с именем, содержащим дружественное имя моих аудиоустройств. Что вы предлагаете мне переименовать? – Kvothe

+0

Он будет находиться в одной из папок панели управления, доступных через интерфейсы оболочки. –

ответ

0

Я не уверен, если это позволит вам изменить его, но в соответствии с this: (msdn.microsoft.com/en-us/library/windows/desktop/dd316587(v=vs.85).aspx)

PKEY_DeviceInterface_FriendlyName

свойство PKEY_DeviceInterface_FriendlyName содержит понятное имя звукового адаптера, к которому присоединен устройство конечной точки (например, «XYZ аудио адаптер»).

Элемент vt структуры PROPVARIANT имеет значение VT_LPWSTR. Элемент pwszVal структуры PROPVARIANT указывает на строку с широким символом с нулевым символом, содержащую дружественное имя. Требования

Минимальная поддерживаемая клиент - Windows Vista [настольных приложений только] Минимальная поддерживаемая сервера - Windows Server 2008 [настольные приложения только]

Заголовок - Functiondiscoverykeys_devpkey.h

Смежные вопросы