24.すべてのウインドウを列挙する
< 使用用途 >
すべてのウインドウを列挙する
今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=> ダウンロード ・・・ 下に書いてあるサンプルソースと同じです
< 説明 >
API関数のEnumWindowsとGetWindowText を使用します。
*GetWindowText は「26、ウインドウのタイトルバーの文字列を取得する」を参照
EnumWindows=>すべてのウインドウを列挙する
<引数>
lpEnumFunc: コールバックプロシージャ
lPalam: 常に0
@戻り値@
正常終了-1
< SAMPLE >
'標準モジュール
Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc
As Long, lPalam As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA"
(ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
'標準モジュール
Public Function Rekkyo(ByVal Handle As Long) As Boolean
Dim Ret As Long
Dim Leng As Long
Dim Name As String
'バッファ確保
Name = String(255, Chr(0))
Leng = Len(Name)
'名前を取得する
Ret = GetWindowText(Handle, Name, Leng)
'リストボックスに追加していく
If Ret <> 0 Then Form1.list1.AddItem Name
'次にいく
Rekkyo = True
End Function
'ここからはフォームの処理
Private Sub Command1_Click()
Dim Ret As Long
Ret = EnumWindows(AddressOf Rekkyo, 0)
End Sub