GetForegroundWindow フォアグラウンドウィンドウを取得

Cの宣言:

HWND GetForegroundWindow()

VBの宣言:

Declare Function GetForegroundWindow Lib "user32" () As Long

説明:

Windowsが管理している全てのウィンドウのうち、ユーザの操作対象になっているフォアグラウンドウィンドウのハンドルを取得する。

フォアグラウンドウィンドウは、デスクトップにつき1つのみ存在する。

取得したウィンドウハンドルが示すウィンドウがトップレベルウィンドウであるとは限らない。現在アクティブなアプリケーションのメインウィンドウを取得したい場合、例えばGetWindow関数などを使用しなければならない。

戻り値は、フォアグラウンドウィンドウのハンドルである。

Cのサンプル:

/* フォアグラウンドウィンドウのタイトルを表示する */
void DoGetForegroundWindow()
{
	char buf[1000];
	HWND hWnd;

	/* フォアグラウンドウィンドウの取得 */
	hWnd = GetForegroundWindow();

	/* ウィンドウタイトルの表示 */
	GetWindowText(hWnd, buf, 1000);
	MessageBox(NULL, buf, "DoGetForegroundWindow", MB_OK);
}

VBのサンプル:

'フォアグラウンドウィンドウのタイトルをデバッグウィンドウに表示する
Sub Main()
	Dim hForegroundWnd As Long
	Dim WndTitle As String * 1000
	Dim Cnt As Integer

	'フォアグラウンドウィンドウのタイトルを1000回表示
	Do
		'1000回表示したら終了
		Cnt = Cnt + 1
		If Cnt = 1000 Then Exit Do

		'フォアグラウンドウィンドウの取得
		hForegroundWnd = GetForegroundWindow()

		'ウィンドウタイトルの取得
		WndTitle = ""
		GetWindowText hForegroundWnd, WndTitle, 1000

		'ウィンドウタイトルの表示
		Debug.Print WndTitle

		DoEvents
	Loop
End Sub


(original text:1998/12/25 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。