4

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

        HWND hwnd;
        hwnd = FindWindow((LPCWSTR)"iTunes",(LPCWSTR)"iTunes");
    if (hwnd != 0){
        cout << "WINDOW FOUND" << endl;
    } else { 
        cout << "WINDOW NOT FOUND" << endl; 
        cout << hwnd << endl;
    }
4

1 回答 1

5

您使用的 ANSI 字符串似乎是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

尝试显式调用FindWindowA或使用这样的宽字符串:

HWND hwnd = FindWindow(L"iTunes", L"iTunes");
于 2012-06-01T20:43:50.207 回答