2012-08-06 99 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