0

C++ を使用してWM_APPCOMMANDを Spotifyに送信したい

私の現在のコードは次のようになります。

DWORD dwThreadId = GetCurrentThreadId();
HDESK hDesktop = GetThreadDesktop(dwThreadId);
EnumWindows((WNDENUMPROC)&WndEnumProc, 0);

もあります:

BOOL CALLBACK Remote::WndEnumProc(HWND hwnd, LPARAM lParam) 
{
    TCHAR className[MAX_PATH];
    GetClassName(hwnd, className, sizeof(className));
    string name = className;
    if (name.compare("SpotifyMainWindow") == 0) {
        cout << SendMessage(hwnd, WM_APPCOMMAND, 0, APPCOMMAND_MEDIA_PLAY_PAUSE) << name << endl;
    }
    return TRUE; 
}

ヘッダー ファイル:

class Remote
{
public:
    static BOOL CALLBACK WndEnumProc(HWND, LPARAM);
};

問題は、0SpotifyMainWindowを返すことです。1 または 0 (SendMessage() の戻り値) とハンドルのクラスを出力します。全体として、メッセージを SpotifyMainWindow に送信しようとしましたが、送信できなかったことを意味します。

これを解決するには?

4

1 に答える 1

3

WM_APPCOMMANDメッセージは、「コマンド」が の上位ワードで提供されることを期待しています。次のlParamようなことを行う必要があります。

SendMessage(hwnd, WM_APPCOMMAND, 0, MAKELPARAM(0,APPCOMMAND_MEDIA_PLAY_PAUSE));
于 2012-09-16T21:31:40.970 に答える