一个项目中要用到的一个功能,但是这种方法仅限于直接增加和减小音量。最理想化的控制条来控制音量还需要调研。
经过测试,这种方法在win7下也能正常使用
如图
代码如下
控制系统音量
using
System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices; // dll引用要用到的
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
[DllImport( " user32.dll " , CharSet = CharSet.Auto, SetLastError = true )]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, uint wParam, uint lParam);
const uint WM_APPCOMMAND = 0x319 ;
const uint APPCOMMAND_VOLUME_UP = 0x0a ;
const uint APPCOMMAND_VOLUME_DOWN = 0x09 ;
const uint APPCOMMAND_VOLUME_MUTE = 0x08 ;
public Form1()
{
InitializeComponent();
}
private void button1_Click( object sender, EventArgs e)
{ // 增加音量
SendMessage( this .Handle, WM_APPCOMMAND, 0x30292 , APPCOMMAND_VOLUME_UP * 0x10000 );
}
private void button2_Click( object sender, EventArgs e)
{ // 减少音量
SendMessage( this .Handle, WM_APPCOMMAND, 0x30292 , APPCOMMAND_VOLUME_DOWN * 0x10000 );
}
private void button3_Click( object sender, EventArgs e)
{ // 静音切换
SendMessage( this .Handle, WM_APPCOMMAND, 0x200eb0 , APPCOMMAND_VOLUME_MUTE * 0x10000 );
}
private void button1_MouseDown( object sender, MouseEventArgs e)
{
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices; // dll引用要用到的
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
[DllImport( " user32.dll " , CharSet = CharSet.Auto, SetLastError = true )]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, uint wParam, uint lParam);
const uint WM_APPCOMMAND = 0x319 ;
const uint APPCOMMAND_VOLUME_UP = 0x0a ;
const uint APPCOMMAND_VOLUME_DOWN = 0x09 ;
const uint APPCOMMAND_VOLUME_MUTE = 0x08 ;
public Form1()
{
InitializeComponent();
}
private void button1_Click( object sender, EventArgs e)
{ // 增加音量
SendMessage( this .Handle, WM_APPCOMMAND, 0x30292 , APPCOMMAND_VOLUME_UP * 0x10000 );
}
private void button2_Click( object sender, EventArgs e)
{ // 减少音量
SendMessage( this .Handle, WM_APPCOMMAND, 0x30292 , APPCOMMAND_VOLUME_DOWN * 0x10000 );
}
private void button3_Click( object sender, EventArgs e)
{ // 静音切换
SendMessage( this .Handle, WM_APPCOMMAND, 0x200eb0 , APPCOMMAND_VOLUME_MUTE * 0x10000 );
}
private void button1_MouseDown( object sender, MouseEventArgs e)
{
}
}
}