2012-08-06 100 views
1

我有键盘,以及内置到我的笔记本电脑,有多媒体键的键盘。其中一个多媒体键当然是暂停/播放,它是键盘驱动程序的功能,可以分配给其他键。当它被推送时,它会暂停/播放iTunes,Windows媒体播放器等,具体取决于我的“最后活动”媒体应用程序。多媒体控制与多媒体键盘在C#

我的问题是,在C#中,如何复制此功能以便能够暂停/播放系统声音。我已经浏览了API,唯一看起来很接近的是winmm.dll waveOutPause和midiOutPause函数

回答

2

.NET中有一个名为SendKeys的类,它允许您将按键按到另一个应用程序,但这不会(AFAIK)允许发送特殊密钥。

所以相反,我猜你想要API函数SendInput

有一个包含媒体密钥here的键码列表,因此您可以模拟播放/暂停或音量控制等键。

编辑:一种可能的替代使用API​​将捕捉当您按下该键(在一个WinForms或WPF应用程序),然后看看是否可以使用复制该按键无论你的多媒体键盘发送定期执行SendKeys

+0

这回答了我问的问题,但是有一个问题,使它不适合我需要的。如果我的媒体已经暂停,我不会只想盲目地发送播放/暂停键并在锁定会话之前开始播放它。我需要一种方法,只发送暂停播放的命令或在发送播放/暂停键之前检查它是否暂停的方法。 – 2012-08-07 16:40:47

+0

据我所知你的选择是“播放/暂停”或“停止” - 我不认为有一个特定的全球热键区分播放和暂停。 – 2012-08-07 17:21:51