Win32API ウィンドウを列挙する EnumWindows

ウィンドウを列挙するのは、FindWindowExでも可能だが、EnumWindowsの方が簡単。


EnumWindowsのプロトタイプ

BOOL EnumWindows(
  WNDENUMPROC lpEnumFunc,  // コールバック関数
  LPARAM lParam            // アプリケーション定義の値
);



EnumWindows関数を用いて、ウィンドウのキャプションを列挙する

#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>

BOOL CALLBACK WndEnumProc(HWND hWnd, LPARAM lParam)
{
    char szBuff[512];
    GetWindowTextA(hWnd, szBuff, _countof(szBuff));
    puts(szBuff);
    return TRUE;
}

int main()
{
    EnumWindows(WndEnumProc, 0);
    return 0;
}



参考
http://msdn.microsoft.com/ja-jp/library/cc410851.aspx