Функция EnumWindows

Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean

EnumWindows перечисляет все окна верхнего уровня. Игнорирует дочерние окна. Обратите внимание, что перечисляются все окна, в том числе невидимые для пользователя.

lpEnumFunc
Указатель на функцию обратного вызова EnumWindowsProc
lParam
Дополнительное значение, определяемое приложением

Пример

' Отображаем заголовки всех окон.  
' Если окно не имеет заголовка, оно отображаться не будет

' Поместите этот код в модуль. Это функция с обратным вызовом
' Эта функция показывает заголовок окна, используя его описатель
Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
Dim sSave As String ' текст в буфере
Dim retval As Long  ' возвращаемое значение
retval = GetWindowTextLength(hwnd) ' определяем длину заголовка окна
sSave = Space(retval)
 GetWindowText hwnd, sSave, retval + 1
Form1.Print Str$(hwnd) + " " + sSave
' продолжаем перечисление окон
EnumWindowsProc = True
End Function

' Поместите код в место, где будете перечислять окна
  Me.AutoRedraw = True
' Вызываем функцию Enumwindows
  EnumWindows AddressOf EnumWindowsProc, ByVal 0&

' Обратите внимание, что lParam
' установлен в 0, потому что мы не должны
' передавать любую дополнительную информацию к функции

Смотри также

EnumChildWindows, EnumThreadWindows

Категория

Окна