C# WM_APPCOMMAND使用C控制音量和静音

C# WM_APPCOMMAND使用C控制音量和静音,c#,system,volume,mute,C#,System,Volume,Mute,我有下面的代码在我的C程序中工作,以控制系统音量、音量上升、音量下降、静音等 我使用WM_APPCOMMAND消息来实现这一点;然而,这是一个很大的问题,但我想知道它是否只起作用,因为我使用带有热键的键盘,即浏览器、电源、媒体播放器、电子邮件等。键盘顶部的按钮位于功能键上方 我想知道我的代码是否适用于键盘未配备热键的笔记本电脑和个人电脑 通过研究,我发现WM_APPCOMMAND的内容可以追溯到2001年的一些消息线程中,因此我怀疑它在XP、Vista以及现在的Windows 7和8上相当稳定。

我有下面的代码在我的C程序中工作,以控制系统音量、音量上升、音量下降、静音等

我使用WM_APPCOMMAND消息来实现这一点;然而,这是一个很大的问题,但我想知道它是否只起作用,因为我使用带有热键的键盘,即浏览器、电源、媒体播放器、电子邮件等。键盘顶部的按钮位于功能键上方

我想知道我的代码是否适用于键盘未配备热键的笔记本电脑和个人电脑

通过研究,我发现WM_APPCOMMAND的内容可以追溯到2001年的一些消息线程中,因此我怀疑它在XP、Vista以及现在的Windows 7和8上相当稳定。而且,由于罗技(Logitech)等公司和其他键盘/媒体控制台制造商仍在新产品中使用它,它似乎并未遭到反对

我只需要知道它是否适用于没有热键的键盘

谢谢

安东尼

private const uint APPCOMMAND_VOLUME_MUTE = 8;
private const uint APPCOMMAND_VOLUME_DOWN = 9;
private const uint APPCOMMAND_VOLUME_UP = 10;

[DllImport("user32.dll")]
public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);


//APPCOMMAND_VOLUME_DOWN
SendMessageW(this.Handle, WmAppcommand, this.Handle, (IntPtr)APPCOMMAND_VOLUME_DOWN);

//APPCOMMAND_VOLUME_UP
SendMessageW(this.Handle, WmAppcommand, this.Handle, (IntPtr)APPCOMMAND_VOLUME_UP);

不,播放歌曲的不是你的键盘。当按下这样一个按钮时,键盘所做的只是生成一个击键事件。这将被转换为WM_APPCOMMAND。谢谢Hans。因此,您的意思是,使用WM_APPCOMMAND的应用程序可以静音、降低音量、增加音量等,即使使用的PC或笔记本电脑没有专用键盘。对吗?…我是通过编程实现的,不需要任何物理按键。例如,我的WinForm应用程序有一个按钮可以静音。对的