Как найти все окна приложения, в том числе вложенные - VB
Формулировка задачи:
Тут такой вопрос по этой теме Найти внутренне окна/контролы приложения
Нужные мне окна находятся аж на 3 уровне вложенности относительно родительского окна приложения,
соответственно мне пришлось писать аж целых 3 функции поиск детей, а это насколько я знаю нехорошо.
можно как нибудь такое в 1 функции организовать?)
чёт типа:
?)))
Решение задачи: «Как найти все окна приложения, в том числе вложенные»
textual
Листинг программы
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Const GW_HWNDNEXT = 2: Const GW_CHILD = 5 Const GW_OWNER = 4 Const GW_HWNDFIRST = 0 Dim buff$ Dim hwnds As Long Dim kontrq& Dim Sstr$ Private Sub Form_Load() Sstr = Space$(4) hwnds = FindWindow(vbNullString, "МегаФон Интернет") Call ScanOkon End Sub Private Sub ScanOkon() Dim HenTek As Long HenTek = GetWindow(hwnds, GW_CHILD) Do If HenTek <> 0 Then buff = Space$(50) SendMessage HenTek, &HD, 40, ByVal buff: List1.AddItem Sstr & " " & Str(HenTek) + " " + Trim(buff) '------------------------------------------- kontrq = GetWindow(HenTek, GW_CHILD) If kontrq <> 0 Then Sstr = Sstr + Sstr hwnds = HenTek Call ScanOkon Sstr = Right(Sstr, 4) End If '------------------------------------------------------------ End If HenTek = GetWindow(HenTek, GW_HWNDNEXT) Loop While HenTek <> 0 End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д