FindWindowEx

機能
クラス名 or キャプションを与えてウィンドウのハンドルを取得
Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" _
(ByVal hwndParent As Long, ByVal hwndChildAfter As Long, _
ByVal lpszClass As String, ByVal lpszWindow As String) As Long
Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" _
(ByVal hwndParent As Integer, ByVal hwndChildAfter As Integer, _
ByVal lpszClass As String, ByVal lpszWindow As String) As Integer

HWND FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow
);
引数
hWndParent

子ウィンドウを見つけるときの親ウィンドウのハンドル
(デスクトップを親ウィンドウとするとき0)
hwndChildAfter
検索を開始する子ウィンドウのハンドル
0を設定したとき、hwndParentの最初の子ウィンドウから検索する
lpszClass
クラス名
lpszWindow
ウィンドウのキャプション
戻り値
正常終了のとき  ウィンドウのハンドル
エラーのとき  0
備考
FindWindow()関数との違いは子ウィンドウか検索できること。
hwndParentとhwndChildAfterが共に0のときトップレベルウィンドウが検索対象。
サンプル
ダウンロード(FindWindowEx.lzh 2.13KB)

Private Sub Command1_Click()
Dim Temp As String, hWnd As Long, Temp2 As String
Dim ClassName As String, WindowName As String

'検索文字列取得
ClassName = Me.Text1(0).Text
WindowName = Me.Text1(1).Text
MsgBox ClassName, , WindowName

'トップレベルウィンドウから検索する
hWnd = FindWindowEx(0, 0, ClassName, WindowName)

If hWnd = 0 Then
    Me.Label5.Caption = "見つかりません"
    Me.Text2(0).Text = ""
    Me.Text2(1).Text = ""
Else
    Me.Label5.Caption = "Hit!"
    'ウィンドウキャプション取得
    Temp = String(256, Chr(0))
    Call GetWindowText(hWnd, Temp, 256)
    a = InStr(Temp, Chr(0))
    If a > 1 Then
        Temp = Mid(Temp, 1, a - 1)
    Else
        Temp = ""
    End If
    'クラス名取得
    Temp2 = String(256, Chr(0))
    Call GetClassName(hWnd, Temp2, 256)
    a = InStr(Temp2, Chr(0))
    If a > 1 Then
        Temp2 = Mid(Temp2, 1, a - 1)
    Else
        Temp2 = ""
    End If
    '結果表示
    Text2(0).Text = "&H" + Hex(hWnd)
    Text2(1).Text = Temp
    Text2(2).Text = Temp2
End If
End Sub

Private Sub Text1_Change(Index As Integer) Dim Txt(1) As String '二つのテキストボックスのテキスト取得 For a = 0 To 1 Txt(a) = Me.Text1(a).Text Next If Txt(0) <> "" Or Txt(1) <> "" Then Me.Command1.Enabled = True Else Me.Command1.Enabled = False End If End Sub