【发布时间】:2012-06-04 08:11:10
【问题描述】:
我想在 WinXP 中以编程方式控制特定应用程序的音量。
我知道一个 API waveOutSetVolume(),但它控制 Win Vista 及更高版本中的应用程序音量,对于 XP,它只会影响整个系统音量。
请告知我们如何在 XP 中实现这一点?
此外,如何取消选中/选中系统音量静音复选框。
【问题讨论】:
标签: c++ winapi visual-c++ win32gui win32-process
我想在 WinXP 中以编程方式控制特定应用程序的音量。
我知道一个 API waveOutSetVolume(),但它控制 Win Vista 及更高版本中的应用程序音量,对于 XP,它只会影响整个系统音量。
请告知我们如何在 XP 中实现这一点?
此外,如何取消选中/选中系统音量静音复选框。
【问题讨论】:
标签: c++ winapi visual-c++ win32gui win32-process
如您所说,Vista OS 提供了应用程序级别的音频级别,因此 XP 无法控制它。
更多信息在这里:http://msdn.microsoft.com/en-us/library/bb945061.aspx
你第二个关于静音的问题,你只需调用waveOutSetVolume:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd743874%28v=vs.85%29.aspx
【讨论】:
SendInput 发送VK_VOLUME_MUTE 笔划。有些键盘有音量按钮,所以我猜 Windows 已经做好了准备。它一直在为我在 XP 上工作,因为它有一个键盘快捷键。不过,这也可能会影响活动的应用程序。或许您可以将其发送至DefWindowProc 之类的地址,以获得您需要的效果。