GetFocusWindow(内部関数)関数の仕様
キーボードフォーカスを持つウィンドウハンドルを返却<
関数定義
Public Function GetFocusWindow() As Long
入力パラメータ
なし
戻り値
キーボードフォーカスを持つウィンドウハンドル
内部処理
1.アクティブなウィンドウ(GetForegroundWindow) のスレッドIDを取得(GetWindowThreadProcessId)
2.そのスレッドが自分自身であれば、その中でキーボードフォーカスを持つウィンドウのハンドルを返却(GetFocus)
3.違う場合は、そのスレッドにアタッチ(AttachThreadInput) して、その中でキーボードフォーカスを
持つウィンドウのハンドルを返却(GetFocus)
4.デタッチ(元の状態に戻す AttachThreadInput)
GetForegroundWindow
アクティブなウィンドウハンドルを取得
GetWindowThreadProcessId
スレッドIDとプロセスIDを取得
GetFocus
この関数を呼び出したスレッドが持つ全てのウィンドウの内、
キーボードフォーカスを持つウィンドウのハンドルを取得する
AttachThreadInput
特定のスレッドの入力処理機構を別のスレッドにアタッチする
SendMessage関数
関数の仕様
ウィンドウにメッセージを送る
関数定義
Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" _
(ByVal hWnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
入力パラメータ
hWnd:メッセージを受け取るウィンドウのハンドル
Msg:メッセージを指定する定数
WM_IME_CHAR ( &H286) 文字コード送信
WM_SETTEXT ( &HC) 文字列送信
wParam:メッセージとともに送るパラメータ
WM_IME_CHAR の時:キーコード
WM_SETTEXT の時:未使用=0
lParam:メッセージとともに送るパラメータ
WM_IME_CHAR の時は未使用=0
WM_SETTEXT の時:文字列へのポインタ
戻り値
正常終了のとき ウィンドウのハンドル、エラーのとき 0