ウィンドウのハンドルを取得する方法
Windowsオペレーティングシステムでは、次の方法でウィンドウハンドルを取得できます。
- FindWindow関数を使用します。この関数はウィンドウのクラス名とウィンドウのタイトルから、ウィンドウのハンドルを取得できます。サンプルコードは以下の通りです。
HWND hwnd = FindWindow(NULL, "窗口标题");
- FindWindowEx関数を使用: この関数は子ウィンドウのハンドルを、親ウィンドウのハンドル、子ウィンドウのクラス名、および子ウィンドウのタイトルを使用して取得できます。サンプルコードを以下に示します。
HWND hwnd = FindWindowEx(parentHwnd, NULL, "子窗口类名", "子窗口标题");
- GetForegroundWindow 関数を利用する。この関数は現在アクティブなウィンドウのハンドルを取得できる。サンプルコードは次のとおり。
HWND hwnd = GetForegroundWindow();
- システム内のすべてのウィンドウを巡回し、コールバック関数を通じて各ウィンドウのハンドルを取得する EnumWindows 関数を使用します。サンプルコードを以下に示します。
#include <iostream>
#include <Windows.h>
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
char title[256];
GetWindowTextA(hwnd, title, sizeof(title));
std::cout << "窗口标题:" << title << std::endl;
return TRUE;
}
int main()
{
EnumWindows(EnumWindowsProc, NULL);
return 0;
}
ウィンドウハンドル(HWND)はウィンドウを一意に識別するものであり、このハンドルを通してウィンドウ操作(メッセージの送信、ウィンドウ属性の変更など)が行えます。