![]() |
#1 |
Участник
|
![]()
Привет всем.
А кто-нибудь делал такую штуку: Есть окно AOT с одним открытым элементом, например полученным через "Открыть новое окно". В ax4 его заголовок был например таким "\Data dictionary\Tables\SalesTable" а в 2012-й все скупо: "AOT - \Data dictionary\Tables" соответственно в 4-ке всякие самописные оконные менеджеры (DEV_ToolBar, Tabax, Sidax) корректно распознавали вид окна и в ярлычке окна было видно название объекта AOT (в данном примере стояло имя таблички SalesTable). А в 12-ке (и кажется в 2009-й то же самое) это не работает. Не очень удобно пользоваться. Ярлычки окон есть, имени объекта в тексте ярлыка нет. Кто-нибудь смог в окне AOT добраться до корневого узла и выцепить его имя ? Например, есть hwnd окошка AOT. Можно по нему как-то вытащить текст первого узла в дереве элементов ? Последний раз редактировалось Logger; 17.05.2022 в 13:47. |
|
![]() |
#2 |
Боец
|
А так не работает?
TreeNode treeNode = new LastAotSelection().first(); |
|
![]() |
#3 |
Участник
|
Работает.
Но проблема не в этом. Работает тулбар. Перебирает окошки в аксапте, чтоб обновить список ярлыков в панели. Открыто 5 окон AOT. В каждом своя табличка открыта. Раньше в ax4 в заголовке каждого окна был полный путь до таблички, в общем, было x++ имя таблички в названии окна. (например "\Data dictionary\Tables\SalesTable" "\Data dictionary\Tables\SalesTable_RU" "\Data dictionary\Tables\SalesTable_W" "\Data dictionary\Tables\PurchTable" ... ) И оно было доступно тулбару. Удобно. Видишь ярлыки в панели и видно какой ярлык к какому объекту X++ ведет. А теперь в заголовке все 5 разных окон имеют один и тот же текст: "AOT - \Data dictionary\Tables" Соответственно ярлычки в тулбаре все выглядят одинаково. Не различить их. Вот задача понять по окошку AOT - какой там объект спрятан. Хотя бы его название как строку вытащить. |
|
![]() |
#4 |
Участник
|
В случае 2012-й аксапты проблемные места обвел красной рамочкой.
Наверно так будет понятно в чем проблема. В случае ax2012 все заголовки окон AOT одинаковые. Поэтому и в тулбаре ярлыки для них одинаковые. Как бы вытащить текст из корня дерева с объектом AOT чтобы сделать в тулбаре нормальные ярлыки с информативным текстом как в ax4 Иногда при рефакторинге приходится много объектов смотреть и сверять. Начинается путаница. Последний раз редактировалось Logger; 17.05.2022 в 17:08. |
|
![]() |
#5 |
Участник
|
Посмотрел структуру в Spy++
Особой разницы не видно. Просто разные Caption у окон в случае ax4 и ax2012 |
|
![]() |
#6 |
Участник
|
Привет.
Есть там наименование, только смотреть его у ребёнка нужно: ![]() Ну и не новость, через простые WinAPI::findWindowEx и WinApi::getWindowText оно не выводится. ![]() Видно, что это структура, она реализует интерфейс IAccessible. Получение объекта реализующего данный интерфейс можно осуществить через функцию AccessibleObjectFromWindow библиотеки oleacc. Ну а там уже вызвать get_accName На шарпе проверил - работает. ![]() GUID интерфейса 618736E0-3C3D-11CF-810C-00AA00389B71 Последний раз редактировалось Товарищ ♂uatr; 18.05.2022 в 01:24. |
|
|
За это сообщение автора поблагодарили: Logger (93). |
Теги |
aot, sidax, tabax, toolbar |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|