这不是一个复杂的问题.我找不到属于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)
您正在使用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)
| 归档时间: |
|
| 查看次数: |
14908 次 |
| 最近记录: |