Winapi 发送消息()到Spotify不工作(C+;+;)

Winapi 发送消息()到Spotify不工作(C+;+;),winapi,visual-c++,spotify,handle,Winapi,Visual C++,Spotify,Handle,我想用C发送到Spotify++ 我当前的代码如下所示: DWORD dwThreadId = GetCurrentThreadId(); HDESK hDesktop = GetThreadDesktop(dwThreadId); EnumWindows((WNDENUMPROC)&WndEnumProc, 0); 还有: BOOL CALLBACK Remote::WndEnumProc(HWND hwnd, LPARAM lParam) { TCHAR classNam

我想用C发送到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; 
}
问题是它返回0SpotifyMainWindow。 它打印1或0(SendMessage()的返回值)以及句柄的类。总之,这意味着它试图将消息发送到SpotifyMain窗口,但无法执行


如何解决此问题?

消息要求在
lParam
的高位字中提供“command”,您需要执行以下操作:

SendMessage(hwnd, WM_APPCOMMAND, 0, MAKELPARAM(0,APPCOMMAND_MEDIA_PLAY_PAUSE));

WM_APPCOMMAND
消息要求以
lParam
的高位字提供“command”,您需要执行以下操作:

SendMessage(hwnd, WM_APPCOMMAND, 0, MAKELPARAM(0,APPCOMMAND_MEDIA_PLAY_PAUSE));

不清楚你的代码是如何失败的。从表面上看,为什么不直接写下
name.compare(“0SpotifyMainWindow”)
?请弄清楚失败的模式是什么。看。好吧,但出了什么问题?是否需要LPRAM参数?不清楚代码是如何失败的。从表面上看,为什么不直接写下
name.compare(“0SpotifyMainWindow”)
?请弄清楚失败的模式是什么。看。好吧,但出了什么问题?是否需要LPRAM参数?