获取当前系统的所有可见窗口名称

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);

你可能感兴趣的:(获取当前系统的所有可见窗口名称)