我正在尝试使用EnumWindows打印所有可见窗口的标题。
起初它是工作的,每次EnumWindows调用时,EnumWindows多次调用回调函数createWindow()。但是没有添加任何有意义的代码,它就停止了工作,现在只用一个不可见窗口的句柄调用一次createWindow()。
这是我的代码:
int main()
{
int row = 2;
int col = 2;
vector<Window> detectedWindows((row * col) + 4);
EnumWindows(&createWindow, (LPARAM)&detectedWindows);
}
BOOL CALLBACK createWindow(HWND input, LPARAM storage)
{
if (IsWindowVisible(input))
{
TCHAR titleTchar[30];
GetWindowText(input, titleTchar, 30);
wcout << titleTchar << endl;
CString titleCstr = titleTchar;
CT2CA converting(titleCstr);
string title(converting);
cout << title << endl;
}
return 0;
}
没有记录的错误消息。 GetLastError返回0。
答案 0 :(得分:4)
您的回调函数返回FALSE
,因此EnumWindows()
停止枚举窗口。让它返回TRUE
。