Рекурсивный поиск дочерних элементов по HWND

 
 
 
Сообщения:24
Добрый день, форумчане!

Вопрос наверное тупой, но я уже фантазию всю извел на нет в поисках решения рекурсивного поиска дочерних элементов окна.
Задача создать авто-тестирование приложения Windows.
Использую Winium. Все идет гладко, пока скрипт не натыкается на таблицу, которая появляется динамически на форме. В этом случае Winium не может обнаружить объект.

Решил использовать библиотеку User32.dll.

Находу необходимое окно, далее ищу все дочерние элементы окна. Тут задача решилась.
Не могу зацепиться за ниточку, которая поведет меня дальше и не выведет скрипт на все дочерние элементы по каждому уровню.
Помогите пожалуйста?!

Вот код.

  HWND hwnd = user32.FindWindow("TList", "Картотека");
            String wText=null;
            char[] textBuffer = new char[512];
            User32.INSTANCE.GetWindowText(hwnd, textBuffer, 512);
            System.out.println(Native.toString(textBuffer));
User32.INSTANCE.EnumChildWindows(hwnd, new User32.WNDENUMPROC() {
                    public boolean callback(HWND hWnd, Pointer userData) { 
                        char[] textBuffer2 = new char[512];
                        char[] textBuffer1 = new char[512];
                        User32.INSTANCE.GetClassName(hWnd, textBuffer2, 512);
                        User32.INSTANCE.GetWindowText(hWnd, textBuffer1, 512);
                         
                        System.out.println(" - Found sub window /+ control class: " + new String(textBuffer2).trim() + "Name = "+new String(textBuffer1).trim());
return true;
                        
                    }
                                    }, null);


Как пойти дальше? ))
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет