Windows ウィンドウ ハンドルの使い方
Windowsオペレーティングシステムでは、ウィンドウハンドルはウィンドウを一意に示す識別子として使用されます。ウィンドウハンドルを使用すると、ウィンドウに対して移動、最大化、最小化、閉じるなどのさまざまな操作を実行できます。
ウィンドウのハンドルを使用するには、次の手順に従ってください。
- ウィンドウハンドルを取得する:
- FindWindowまたはFindWindowEx関数を利用して、ウインドウのクラス名、ウインドウタイトルなどの情報からウインドウハンドルを取得することができます。
- GetForegroundWindow 関数を使用して、現在アクティブなウィンドウのハンドルを取得できます。
- GetDesktopWindow 関数を使えばデスクトップウィンドウのハンドルを取得できます。
- ウインドウハンドルによる操作
- SendMessage関数は、ウィンドウにメッセージを送信するために利用することができます。例えば、WM_CLOSEメッセージを利用すればウィンドウを閉じることができ、WM_SYSCOMMANDメッセージを利用すれば、最大化、最小化、復元などのウィンドウ操作を行うことができます。
- SetWindowPos関数を使用してウィンドウの位置やサイズを変更できます。
- ShowWindow 関数を使用すると、ウィンドウを表示または非表示にすることができます。
プログラムの実行中にウィンドウハンドルは変化する場合があるので、実際にウィンドウハンドルを使用する前に有効なウィンドウハンドルであることを確認することをおすすめします。
ウィンドウハンドルを使用してウィンドウを閉じるコードのサンプルを、C++とWinAPIで紹介します。
#include <Windows.h>
int main()
{
// 获取窗口句柄
HWND hwnd = FindWindow(nullptr, L"窗口标题");
// 判断窗口句柄是否有效
if (hwnd != nullptr)
{
// 发送关闭消息
SendMessage(hwnd, WM_CLOSE, 0, 0);
}
return 0;
}
上記のコードでは FindWindow 関数を使用してウィンドウタイトルからウィンドウのハンドルを取得し、次に SendMessage 関数を使用して WM_CLOSE メッセージをウィンドウに送信し、ウィンドウを閉じる機能を実現しています。