遍历windows窗口

原文

1.

GetDesktopWindow 
GetNextWindow
HWND hAll = ::GetDesktopWindow();
HWND hCurrent = ::GetNextWindow(hAll, GW_CHILD);
char szTittleDbg[256] = {0};
char *p = NULL;
while (hCurrent != NULL)
{
    ::GetWindowText(hCurrent, szTittleDbg, 256);
    int iStrLength = strlen(szTittleDbg);
    if (iStrLength == 0)
    {
        hCurrent = ::GetNextWindow(hCurrent, GW_HWNDNEXT);
        continue;
    }
    if (strcmp("Warcraft III" /*"WarIII"*/, szTittleDbg) == 0)
    {
        //是否隐藏:IsWindowVisible 
        //是否最小化:IsIconic 
        //是否最大化:IsZoomed  
        g_bActive = !(::IsIconic(hCurrent));
        break;
    }      
    hCurrent = ::GetNextWindow(hCurrent, GW_HWNDNEXT);
}

 2.

1. 窗口列表用 EnumWindows 获取所有父窗口
2. 递归调用 EnumChildWindows 枚举所有子窗口
原文地址:https://www.cnblogs.com/hei-hei-hei/p/11452710.html