HWND GetForegroundWindow()
Declare Function GetForegroundWindow Lib "user32" () As Long
フォアグラウンドウィンドウは、デスクトップにつき1つのみ存在する。
取得したウィンドウハンドルが示すウィンドウがトップレベルウィンドウであるとは限らない。現在アクティブなアプリケーションのメインウィンドウを取得したい場合、例えばGetWindow関数などを使用しなければならない。
戻り値は、フォアグラウンドウィンドウのハンドルである。
/* フォアグラウンドウィンドウのタイトルを表示する */ void DoGetForegroundWindow() { char buf[1000]; HWND hWnd; /* フォアグラウンドウィンドウの取得 */ hWnd = GetForegroundWindow(); /* ウィンドウタイトルの表示 */ GetWindowText(hWnd, buf, 1000); MessageBox(NULL, buf, "DoGetForegroundWindow", MB_OK); }
'フォアグラウンドウィンドウのタイトルをデバッグウィンドウに表示する 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