3

Windows Live Messenger の「今聴いている曲」機能を使用するにはどうすればよいですか? メッセンジャーがステータスを設定できるように、WLM と通信して曲情報を送信するにはどうすればよいですか? C++ (Qt) でコーディングしています。

私はすべてのネットを検索しましたが、他のプログラミング言語でさえ、それについて何も見つかりませんでした.

編集:

私は自分自身を明らかにしなかったようです。ウォークスルーは必要ありません。WMP、Winamp、iTunes などのメディア プレーヤーのように、その機能を使用するために Windows Live Messenger と通信するための API、ライブラリ、または何かがあるかどうかを知りたいです。

Live Connect API を検索しましたが、それについては何も見つかりませんでした。

4

2 に答える 2

2

この機能を実装している多くのオープンソースプロジェクト(MPC-HC、PsyMP3、Songbirdなど)がチェックできるので、その方法を説明します。

まず、次のようなUnicode文字列を作成します。

Player \ 0Type \ 0Playing \ 0Format \ 0Artist \ 0Type \ 0Album \ 0GUID \ 0

(\ 0はNULではないので、必ずエスケープしてください)

  • プレーヤー:音楽プレーヤーの名前
  • タイプ:メディアのタイプ、ここでは:「音楽」
  • 再生中:1は再生、0は停止
  • 形式:「NowPlaying」の横の文字列。例:A3FPlayer: {1} - {0}
  • アーティスト、タイトル、アルバムは一目瞭然です
  • GUID:WMCONTENTID

次に、次のようなCOPYDATASTRUCTを作成します。

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

そして最後に、その構造体をMsnMsgrUIManagerハンドルに渡しますFindWindowEx

HWND hWnd = FindWindowEx(NULL, NULL, L"MsnMsgrUIManager", NULL);
SendMessage(hWnd, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&data);
于 2013-01-03T11:02:58.967 に答える
1

a3f は、少しのコードで素晴らしい答えを提供します。ただし、彼の返信が少しわかりにくい場合は、私が PsyMP3 のインターフェイス コードを書いているときに書いた一種の「API」リファレンスを次に示します。私が言う唯一のことは、GUID 部分を「WMContentID」として記述することです。これは、WinSpy でウィンドウ メッセージをスヌーピングしているときに Windows Media Player が MSN に渡すのを見たからです。

とにかく、問題のインターフェイスのドキュメントは次のとおりです。

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

于 2013-02-17T11:29:19.573 に答える