Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
EnumChildWindows перечисляет дочерние окна заданного родительского окна. Функция также перечисляет дочерние окна дочерних окон.
' Получим заголовки всех дочерних окон формы Form1 ' Расположите код в модуле, ' т.к. применяется функция обратного вызова Public Function EnumChildProc(ByVal hwnd As Long, ByVal lParam As Long) As Long Dim sSave As String ' Получим длину текста sSave = Space$(GetWindowTextLength(hwnd) + 1) ' Получим текст GetWindowText hwnd, sSave, Len(sSave) ' Удалим завершающий нулевой символ Chr$(0) sSave = Left$(sSave, Len(sSave) - 1) If sSave <> "" Then Form1.Print sSave ' Продолжим перечисление EnumChildProc = 1 End Function ' Расположите код в место, где будете перечислять окна Dim retval As Long ' возвращаемое значение retval = EnumChildWindows(Form1.hwnd, AddressOf EnumChildProc, 0)
EnumThreadWindows, EnumWindows