Windows Live Messenger“我正在听什么”的功能

时间:2012-10-26 00:58:17

标签: c++ qt windows-live-messenger

如何使用Windows Live Messenger“我正在听什么”功能?如何与WLM通信以发送歌曲信息,以便Messenger可以设置状态?我用C ++编写(Qt)

我搜索了所有网络,但没有发现任何相关内容,甚至没有其他编程语言。

编辑:

看起来我没有说清楚。我不想要一个演练。我想知道是否有一个API,库或任何与Windows Live Messenger通信的东西,以便使用该功能,如WMP,Winamp和iTunes等媒体播放器。

我搜索了Live Connect API,但我还没有找到任何相关内容。

2 个答案:

答案 0 :(得分:2)

由于有许多实现此功能的开源项目可以检查(如MPC-HC,PsyMP3,Songbird等),我只会解释它是如何完成的:

首先,构建一个如下所示的Unicode字符串:

  

播放器\ 0Type \ 0Playing \ 0Format \ 0Artist \ 0Type \ 0Album \ 0GUID \ 0

(\ 0不是NUL,所以一定要逃避它们)

  • 播放器:音乐播放器的名称
  • 类型:媒体类型,此处:“音乐”
  • 播放:1代表播放,0代表停止
  • 格式:“正在播放”旁边的字符串,例如:A3FPlayer: {1} - {0}
  • 艺术家,头衔&专辑是不言自明的
  • GUID:WMCONTENTID

然后你建立一个像这样的COPYDATASTRUCT:

COPYDATASTRUCT data;
data.dwData = 0x0547; //1351 decimal
data.lpData = (PVOID)(LPCWSTR)MsnMsg;
data.cbData = MsnMsgSize * 2 + 2;

最后将该结构传递给MsnMsgrUIManager的{​​{1}}句柄:{/ 1}}:

FindWindowEx

答案 1 :(得分:1)

a3f通过一些代码提供了一个很好的答案。但是,如果你确实发现他的回复有点混乱,这里是我在编写PsyMP3接口代码时编写的“API”引用。我唯一要说的是我会把GUID部分写成“WMContentID”,就像我在看到Windows Media Player通过WinSpy监听窗口消息时传递给MSN的那样。

无论如何,我的相关界面文档在这里:

http://code.google.com/p/psymp3/wiki/MsnMsgrUiManager