複数のウィンドウを検索          <TOP>


複数のウィンドウを検索します。

FindWindowEx クラス名 、または キャプションを与えてウィンドウのハンドルを取得
GetWindowText ウィンドウのタイトル文字列を取得


例では、複数のIEが起動されている状態でクラス名(IEFrame)を取得しています。

 

参照

IE(複数起動)の終了

 

'================================================================
'= 複数のウィンドウを検索
'=   (FindWindowEx.bas)
'================================================================
#include "Windows.bi"

' クラス名 、または キャプションを与えてウィンドウのハンドルを取得
Declare Function Api_FindWindowEx& Lib "user32" Alias "FindWindowExA" (ByVal hWndParent&, ByVal hWndChildAfter&, ByVal lpszClass$, ByVal lpszWindow$)

' ウィンドウのタイトル文字列を取得
Declare Function Api_GetWindowText& Lib "user32" Alias "GetWindowTextA" (ByVal hWnd&, ByVal lpString$, ByVal cch&)

Var Shared List1 As Object
Var Shared Button1 As Object

List1.Attach GetDlgItem("List1") : List1.SetFontSize 12
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var hWnd As Long
    Var Title As String * 512
    Var Ret As Long

    List1.Resetcontent
    
    hWnd = 0
    Do
        hWnd = Api_FindWindowEx(0, hWnd, "IEFrame", ByVal 0)
        If hWnd = 0 Then Exit Do

        Ret = Api_GetWindowText(hWnd, Title, Len(Title))
        List1.AddString Left$(Title, InStr(Title, Chr$(0)) - 1)
    Loop
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End