【发布时间】:2012-04-23 17:00:58
【问题描述】:
我想更改程序的音量(而不是 主 音量)。我现在有以下代码:
DllImport("winmm.dll")]
public static extern int waveOutGetVolume(IntPtr hwo, out uint dwVolume);
[DllImport("winmm.dll")]
public static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume);
private void volumeBar_Scroll(object sender, EventArgs e)
{
// Calculate the volume that's being set
int NewVolume = ((ushort.MaxValue / 10) * volumeBar.Value);
// Set the same volume for both the left and the right channels
uint NewVolumeAllChannels = (((uint)NewVolume & 0x0000ffff) | ((uint)NewVolume << 16));
// Set the volume
waveOutSetVolume(IntPtr.Zero, NewVolumeAllChannels);
}
这仅适用于 Win XP,不适用于 Windows 7(可能也适用于 Vista)。我没有找到任何可以在 Win 7 上实现相同功能的脚本,只是为了更改主音量(我不在之后)。
【问题讨论】: