1、定义一个全局变量CString buf;以来存储名称。
2、回调函数lpEnumFunc
BOOL CALLBACK lpEnumFunc(HWND hwnd, LPARAM lParam)
{
if ( GetParent(hwnd)==NULL && IsWindowVisible(hwnd) &&
(::GetWindowLong(hwnd, GWL_EXSTYLE)&WS_EX_TOOLWINDOW)!=WS_EX_TOOLWINDOW &&
::GetWindowLong(hwnd, GWL_HWNDPARENT)==0) //判断窗口是否是可见、顶层
{
TCHAR str[256] = {0};
::GetWindowText(hwnd,str,sizeof(str)); //获取窗口的名称
CString tempbuf(str);
if (!tempbuf.IsEmpty())
{
buf += tempbuf ;
buf += ";";
}
}
return 1;
}
3、在需要的地方调用回调函数
EnumWindows(lpEnumFunc,NULL);