FindWindow()找不到我的窗口[C++]

Rob*_*Rob 4 hwnd findwindow

这不是一个复杂的问题.我找不到属于iTunes的句柄了.但是虽然iTunes在后台运行,但它一直告诉我它无法找到窗口.所以我继续检查我是否错过键入窗口名称,但间谍++向我指出我使用了正确的窗口名称和类名(见下文).我确定这是一个小错误,但我似乎无法找到它.有没有人有洞察力?提前致谢.

        HWND hwnd;
        hwnd = FindWindow((LPCWSTR)"iTunes",(LPCWSTR)"iTunes");
    if (hwnd != 0){
        cout << "WINDOW FOUND" << endl;
    } else { 
        cout << "WINDOW NOT FOUND" << endl; 
        cout << hwnd << endl;
    }
Run Code Online (Sandbox Code Playgroud)

3Do*_*ons 5

您正在使用ANSI字符串,其似乎是Unicode版本FindWindow.

许多Win32函数实际上是一对函数和一个宏.例如,FindWindow大致定义如下:

HWND WINAPI FindWindowA(LPCSTR lpClassName, LPCSTR lpWindowName);
HWND WINAPI FindWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName);

#if (UNICODE)
#  define FindWindow FindWindowW
#else
#  define FindWindow FindWindowA
#endif
Run Code Online (Sandbox Code Playgroud)

尝试明确地调用FindWindowA或使用这样的宽字符串:

HWND hwnd = FindWindow(L"iTunes", L"iTunes");
Run Code Online (Sandbox Code Playgroud)