Я хочу изменить громкость программы (, а не основную громкость ). У меня есть следующий код прямо сейчас:
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, только для изменения основного тома (, который мне не нужен ).