【问题标题】:How to programmatically change the friendly name of a Windows audio device?如何以编程方式更改 Windows 音频设备的友好名称?
【发布时间】:2014-11-13 06:09:06
【问题描述】:

我应该使用什么 API 调用来重命名 Windows 上的音频设备?我的目标是更改当用户右键单击音量图标并选择“播放设备”时显示给用户的设备名称。我相信“友好名称”是我要更改的属性。

我已经成功调用SetupDiSetDeviceProperty,它返回true。如果我随后调用SetupDiGetDeviceProperty,则返回最近设置的值。然而,这个值似乎只存在于我的应用程序的上下文中——系统设置似乎没有改变。

除了SetupDiSetDeviceProperty之外,我还应该调用另一个函数调用吗?

我一直以管理员身份运行我的应用程序,所以权限应该不是问题。

【问题讨论】:

  • 我不知道如何使用这些 API,但如果您可以通过资源管理器重命名设备,那么将能够使用 shell 来执行此操作。绑定到相应的文件夹,识别项目并调用IShellFolder::SetNameOf
  • 我不确定你的意思。我的机器上没有文件系统对象,其名称包含我的音频设备的友好名称。你建议我重命名什么?
  • 它将位于控制面板文件夹之一,可通过外壳界面访问。

标签: c windows winapi audio driver


【解决方案1】:

我不确定这是否允许您更改它,但根据this: (msdn.microsoft.com/en-us/library/windows/desktop/dd316587(v=vs.85).aspx)

PKEY_DeviceInterface_FriendlyName

PKEY_DeviceInterface_FriendlyName 属性包含端点设备所连接的音频适配器的友好名称(例如,“XYZ 音频适配器”)。

PROPVARIANT 结构的 vt 成员设置为 VT_LPWSTR。 PROPVARIANT 结构的 pwszVal 成员指向包含友好名称的以空字符结尾的宽字符字符串。 要求

支持的最低客户端 - Windows Vista [仅限桌面应用] 支持的最低服务器 - Windows Server 2008 [仅限桌面应用]

头文件 - Functiondiscoverykeys_devpkey.h

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-13
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2015-08-14
    • 2021-07-23
    相关资源
    最近更新 更多