遍歷windows窗口

原文spa

1.code

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.htm

1. 窗口列表用 EnumWindows 獲取全部父窗口
2. 遞歸調用 EnumChildWindows 枚舉全部子窗口
相關文章
相關標籤/搜索