键盘上的特殊键

有没有办法让我的程序能够“触发”键盘上的特殊键,例如媒体键(播放,暂停,下一个等等)。 我正在尝试创建一个执行这些function的应用程序,一种简单的方法是模拟按下的键。 如果它更容易,这是一个个人项目,所以我不介意解决方案是非通用的和/或不适用于所有键盘。 我环顾四周,我认为SendKey可能是一种方法,但我不知道这些特殊键的扫描码是什么。

以下链接提供了在应用程序中使用多媒体键盘键的好主意,但本文适用于c ++,您必须自己了解如何使用这些function。

编辑:根据这些文章,我实现了一些媒体function键,让您可以从您的应用程序控制音量。

private const int APPCOMMAND_VOLUME_MUTE = 0x80000; private const int APPCOMMAND_VOLUME_UP = 0xA0000; private const int APPCOMMAND_VOLUME_DOWN = 0x90000; private const int WM_APPCOMMAND = 0x319; private const int APPCOMMAND_MEDIA_PLAY_PAUSE = 0xE0000; [DllImport("user32.dll")] public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam); public Form1() { InitializeComponent(); } private void btnPlayPause_Click(object sender, EventArgs e) { SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr)APPCOMMAND_MEDIA_PLAY_PAUSE); } private void btnMute_Click(object sender, EventArgs e) { SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr)APPCOMMAND_VOLUME_MUTE); } private void btnDecVol_Click(object sender, EventArgs e) { SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr)APPCOMMAND_VOLUME_DOWN); } private void btnIncVol_Click(object sender, EventArgs e) { SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr)APPCOMMAND_VOLUME_UP); } 

只需复制并使用在任何地方。

C#中的低级键盘挂钩

在您自己的程序中使用多媒体键盘键