在Windows中控制当前的媒体播放器而不发送媒体键击键?

时间:2017-12-28 15:11:02

标签: c# media-player

我有一个带有媒体键的键盘,通常的东西,播放/暂停,停止,上一个,下一个,以及音量控制。

我想模仿这种行为,只能来自我自己的程序。这意味着如果Spotify正在运行,播放一首歌,并且我的程序显示“暂停”,我希望Spotify暂停。所有这一切都没有我对Spotify的硬编码支持。

我知道我可以使用类似“SendKeys”的东西来伪造用户按下键盘上的相应键,我已经看过AutoHotKeys脚本。

但是我会直接在我的程序中使用什么API函数?他们甚至存在吗?

1 个答案:

答案 0 :(得分:1)

一个简单的选择是使用AutoHotkey dll。我发现了惊人的安德鲁回购AutoHotkey.Interop对此非常有用。

然后你可以这样执行ControlSend:

//grab a copy of the AutoHotkey singleton instance
var ahk = AutoHotkeyEngine.Instance;

//execute any raw ahk code
ahk.ExecRaw("ControlSend, , {Media_Play_Pause}, ahk_class SpotifyMainWindow"); // send directly to the window