我使用以下enumchild proc获取每个窗口的hwnd,问题是我无法以某种方式检测每个hwnd的任何信息,所以我可以做我想要的那些被检测为我需要的那些。
例如,我怎样才能获得窗口类名称和enum bellow中每个窗口的标题?
我尝试了类似的事情。
编辑:复制粘贴(如果有帮助)
TCHAR cName[MAX_PATH];
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam) {
TCHAR cName[MAX_PATH];
GetClassName(hwnd, cName, _countof(cName));
cout << cName << endl;
return TRUE;
}
int _tmain(int argc, _TCHAR* argv[])
{
HWND hwnd = FindWindow(0, TEXT("reference"));
EnumChildWindows(hwnd, EnumChildProc, 0);
system("PAUSE");
return 0;
}
它只返回十六进制句柄信息,并且每次都相同,GetClassName func不应该每次都将cName更改为新句柄吗?
此外,GetClassName函数返回写入cName的字符数,我真的不知道这对我有用吗?我需要以一些可读的格式获取我的cName,这样我就能做到像
这样的事情if(className == TEXT(“classnameiamlookingfor”&amp;&amp; hwndtitle = TEXT(“thetitlethatinterestsme”)DOSOMETHINGWITHIT();
但我得到的只是十六进制混乱。
答案 0 :(得分:4)
不是Unicode构建吗?
再次检查以下内容:
TCHAR className[MAX_PATH];
GetClassName(hwnd, className, _countof(cName));
_tprintf(cName);