ControlGetFocus

ターゲットウィンドウのどのコントロールにキーボードフォーカスがあるのかを取得します(もしあれば)。

HWND := ControlGetFocus(WinTitle, WinText, ExcludeTitle, ExcludeText)

パラメータ

WinTitle, WinText, ExcludeTitle, ExcludeText

型:文字列整数またはオブジェクト

もしこれらの項目が未設定または省略されたときは、最後に見つかったウィンドウが使用されます。そうでないときは、WinTitleウィンドウタイトルまたはターゲットウィンドウを識別するための他の基準、および/またはWinTextにターゲットウィンドウの単一のテキスト要素からの部分文字列(付属のWindow Spyユーティリティを使えばわかります)を指定します。

ExcludeTitleExcludeTextはウィンドウのタイトルまたはテキストで除外するために使用します。指定の仕方はWinTitleWinTextに似ていますが、ExcludeTitleはウィンドウのタイトル以外の基準(ウィンドウクラスやHWNDなど)を認識しません。

ウィンドウのタイトルとテキストは大文字と小文字を区別します。DetectHiddenWindows関数 と DetectHiddenText関数で変更しない限り、初期設定では非表示ウィンドウは検出されず、非表示テキストは検出されます。SetTitleMatchMode関数で変更しない限り、初期設定ではウィンドウのタイトルはその中のどこかにWinTitleまたはExcludeTitleを含んでいれば一致します。

戻り値

型:整数

説明: フォーカスされているコントロールのウィンドウハンドル(HWND)を返します。

対象ウィンドウのどのコントロールにもフォーカスがない場合、戻り値は 0 となる。

エラー処理

ターゲットとなるウィンドウやコントロールの決定に問題がある場合、TargetErrorがスローされます。

フォーカスの決定に問題がある場合、OSErrorがスローされます。

備考

この関数で取得されるコントロールは、キーボードフォーカスを持つもの、つまり、ユーザーが何か入力した場合にキーストロークを受け取ることになるものです。

対象ウィンドウがアクティブでなければフォーカスされたコントロールは得られませんが、アクティブなウィンドウであってもフォーカスされたコントロールがない場合があります。

ControlFocusControl関数

アクティブウィンドウのフォーカスコントロールのHWNDとClassNNを報告します。

FocusedHwnd := ControlGetFocus("A")
FocusedClassNN := ControlGetClassNN(FocusedHwnd)
MsgBox 'Control with focus = {Hwnd: ' FocusedHwnd ', ClassNN: "' FocusedClassNN '"}'