有没有办法在Windows上使用C#调用通用播放/暂停控件?

时间:2017-01-29 11:32:59

标签: c#

我正在创建一个可以暂停/播放音乐的应用。我不是在制作自己的音乐播放器,而是想使用Windows系统范围内的通用暂停/播放。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

您必须使用keybd_event Windows API来执行此操作。

using System.Runtime.InteropServices;
...
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,
    UIntPtr dwExtraInfo);
public const int KEYEVENTF_KEYUP = 0x0002;
public const byte VK_MEDIA_PLAY_PAUSE = 0xB3;

private void button_Click(object sender, RoutedEventArgs e)
{
    // No flags indicate key down
    keybd_event(VK_MEDIA_PLAY_PAUSE, 0, 0, UIntPtr.Zero);
    keybd_event(VK_MEDIA_PLAY_PAUSE, 0, KEYEVENTF_KEYUP, UIntPtr.Zero);
}

有关密钥代码的完整列表,您可以使用此类:

https://github.com/johnkoerner/KeyboardListener/blob/master/KeyboardListener/Keycodes.cs