原文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 枚舉全部子窗口