c# 这些音量变化是什么 codes/messages

c# What are these volume changing codes/messages

我发现这个脚本可以改变系统音量并且有效。但是这些常量代码叫什么,我在哪里可以找到这些代码的完整列表,这些代码可以做更多的事情。

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

//Volume codes, or messages, or whatever they are called
const int VOLUME_MUTE = 0x80000;
const int VOLUME_DOWN = 0x90000;
const int VOLUME_UP = 0xA0000;

SendMessage(this.Handle, 0x319, IntPtr.Zero, (IntPtr)VOLUME_UP);

这些是 AppCommand 消息。

0x319 是 WM_APPCOMMAND 的 Win32 Windows 消息,消息更准确 APPCOMMAND_VOLUME_UP,等等...

AppCommand 消息是发送到 windows 的消息,它们在全局级别进行处理并执行某些应用程序功能。这些往往与键盘热键和鼠标按钮功能有关。

您的应用程序首先处理任何此类消息,如果您不处理它们,那么您的应用程序父级会处理。如果那不能处理它们,那么最终它会被发送到一个全局消息挂钩来处理它们。这里的关键是其他 windows 可以捕获这些消息,因此不能保证发送这些消息就可以完成任务。就像您可能已经看到,当某些 windows 获得焦点时,在键盘上按音量增大或减小可能并不总是有效。

您可以在 Win32 API 参考资料中找到所有消息的详细信息:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms646275(v=vs.85).aspx