#175 | キャプションからウィンドウハンドルを取得する方法 | VBA、API | |
「#174 ウィンドウハンドルからキャプションを取得する方法」とはまったく逆に、あらかじめウィンドウのキャプションだけが分かっている場合に、そのウィンドウのハンドルを取得する方法です。ウィンドウハンドルを取得すれば、その後、さまざまなWindowsAPIを使って、そのウィンドウに対する操作が可能となります。 キャプションからウィンドウハンドルを取得するにはWindowsAPIの「FindWindow」関数を使用します。 まず標準モジュールに次のコードを記述します。"Declare"の前に"Private"を付けることによってフォームのモジュールにも記述できます。 Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 次の例は、アクセサリのメモ帳を開いた直後のウィンドウのキャプションから、そのウィンドウハンドルを取得するものです。 Dim strWindowText As String
Dim lngHWnd As Long '取得するウィンドウのキャプションを設定します strWindowText = "無題 - メモ帳" 'API関数を呼び出します 'API関数の返り値として変数lngHWndにメモ帳のハンドルがセットされます lngHWnd = FindWindow(vbNullString, strWindowText) If lngHWnd <> 0 Then MsgBox "ウィンドウハンドルは、" & lngHWnd Else MsgBox "メモ帳が開いていないかキャプションが違います!" End If 実行結果: ※Windowsのバージョンによっては、"無題 - メモ帳"の部分が半角カタカナになっている場合もありますので、注意してください。 |
|||
|
Copyright © T'sWare All rights reserved |