C++上ウィンドウをイテレートする方法
C++でウィンドウズを列挙するにはWindows APIを利用する事ができます。一般的な方法は次のとおりです。
- 最初にWindows APIのヘッダファイルを含める必要があります:
#include <windows.h>
- ウィンドウごとに処理するコールバックを作成する:
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) {
// 处理窗口的逻辑
return TRUE;
}
このうち、hwndはウィンドウのハンドルを示し、lParamは追加情報を渡すために使用できる、ユーザー定義パラメータです。
- EnumWindows 関数をメインプロセスで呼び出してウィンドウを列挙します
int main() {
EnumWindows(EnumWindowsProc, 0);
return 0;
}
EnumWindows 関数はシステムの全トップレベルウィンドウを列挙し、各ウィンドウのハンドルを引数に受け取るコールバック関数 EnumWindowsProc で処理しています。
EnumWindowsProc 関数では、ウィンドウの特定のプロパティに基づいて判断や処理を行うことができます。例えば、ウィンドウのタイトルやクラス名などの情報を取得できます。
OS関連APIの呼び出しを伴うため、上記のコードはWindowsプラットフォームでのみ有効に注意してください。他のプラットフォームでのウィンドウの反復処理には、異なる方法を使用する必要があります。