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





API 技術関連のページへ戻る

ホーム PV ランキング