Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
EnumWindows перечисляет все окна верхнего уровня. Игнорирует дочерние окна. Обратите внимание, что перечисляются все окна, в том числе невидимые для пользователя.
' Отображаем заголовки всех окон. ' Если окно не имеет заголовка, оно отображаться не будет ' Поместите этот код в модуль. Это функция с обратным вызовом ' Эта функция показывает заголовок окна, используя его описатель 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