UIA v2

Post your working scripts, libraries and tools.
mora145
Posts: 57
Joined: 25 Jun 2022, 15:31

Re: UIA v2

Post by mora145 » 15 Jan 2024, 11:46

Descolada wrote:
15 Jan 2024, 11:42
@mora145 you are doing everything correct, but Chrome is not (yet for another unknown reason). You can use finalElement := UIA.ContentViewWalker.GetLastChildElement(page) or finalElement := page[-1] as workarounds.
I see. There are times when Chrome is illogical. Thanks Descolada and for staying tuned.

mora145
Posts: 57
Joined: 25 Jun 2022, 15:31

Re: UIA v2

Post by mora145 » 15 Jan 2024, 16:17

@Descolada
Other problem here:
I obtain the elements, but when I will Dump it, produce a exception.
Screenshot_74.png
Screenshot_74.png (59.27 KiB) Viewed 1255 times
Screenshot_75.png
Screenshot_75.png (15.23 KiB) Viewed 1255 times

Spitzi
Posts: 313
Joined: 24 Feb 2022, 03:45

Re: UIA v2

Post by Spitzi » 16 Jan 2024, 17:23

Hi @Descolada

Do you think it is possible with UIA to find out which row is selected in a table like this:
It is a Qt-Framework Table. I tried to find something usind your (fantastic!) UIAViewer, but so far nothing worked
There is a "LegacyAccessible" Method "GetSelection()" but it returs an empty array.
aTable.png
aTable.png (15.05 KiB) Viewed 1182 times
Any idea? Thanks and greets.

Descolada
Posts: 1141
Joined: 23 Dec 2021, 02:30

Re: UIA v2

Post by Descolada » 17 Jan 2024, 00:12

@mora145 you are trying to Dump an array, which doesn't have that functionality. Instead you can loop through all the elements inside the array and show their contents:

Code: Select all

for el in pointer
    MsgBox el.DumpAll()
@Spitzi if the table rows/cells are inspectable with UIAViewer then you could try looking at them with Accessibility Insights. Sometimes LegacyIAccessible State (or some other property of LegacyIAccessible) property value changes when something is selected (which UIAViewer doesn't show yet). It's likely though that it's a custom implementation and isn't detectable by UIA at all, so you might need to revert to image-based approaches.

Spitzi
Posts: 313
Joined: 24 Feb 2022, 03:45

Re: UIA v2

Post by Spitzi » 17 Jan 2024, 05:34

@Descolada Thanks for the advice: the state property just held information about the keyboardFocus, but nothing else. Imagebased approach is not an option because usually not the whole table is shown, an the selected entry is not on the screen.
By the way: the UIA-Viewer crashes frequently after a few tree lookups using F1 and Esc. It crashes usually after the third or forth usage of F1, at the moment when I hit Escape.

Spitzi
Posts: 313
Joined: 24 Feb 2022, 03:45

Re: UIA v2

Post by Spitzi » 17 Jan 2024, 07:32

Sorry, last question: is it possible to send keys to UI-Elements using UIA? I would like to send Ctrl-C to a picture element to copy it's contents. I would like to avoid clicking on the element to activate it and then use the AHK-Send-Command to send Ctrl-C.

Descolada
Posts: 1141
Joined: 23 Dec 2021, 02:30

Re: UIA v2

Post by Descolada » 17 Jan 2024, 07:39

@Spitzi, last week I updated UIA.ahk to try and fix a bug with UIAViewer crashes, so if you haven't updated it this week then I'd suggest doing that. If the crashes persist after that then let me know.

It is not possible to send keys to elements directly. Sometimes you can use Element.SetFocus() to focus it and then Send or ControlSend Ctrl+C to copy. Otherwise you might need Element.Click("right") and automate selecting the "Copy" menuitem (if it exists).

songdg
Posts: 575
Joined: 04 Oct 2017, 20:04

Re: UIA v2

Post by songdg » 18 Jan 2024, 04:50

An element obtain through UIA.TreeWalkerTrue.GetParentElement(el), how to tell what type it is?

Descolada
Posts: 1141
Joined: 23 Dec 2021, 02:30

Re: UIA v2

Post by Descolada » 18 Jan 2024, 04:54

@songdg Element.Type gives you the number for the type, and UIA.Type[number] gives it in English

songdg
Posts: 575
Joined: 04 Oct 2017, 20:04

Re: UIA v2

Post by songdg » 18 Jan 2024, 09:45

@Descolada
Thanks pal, here's another question relate to the previous one I asked. There's an element("ListItem") I want to target but without a name or have any text before it, and use cUIA.FindElements({Type:"ListItem"}) could find dozens of such elements. However it has a child element with a particular name, unfortunately use cUIA.FindElements({Name:"somename", Type:"Text"}) can find several results, and the result number are not fixed, so I can not specify the index either.
So I came up with a solution, and wonder is there a better way to do that?

Code: Select all

for el in cUIA.FindElements({Name:"somename", Type:"Text"})
{
		element := UIA.TreeWalkerTrue.GetParentElement(el)
		if UIA.Type[element.Type] == "ListItem"
		{
			element.Click()
			break
		}
}

mora145
Posts: 57
Joined: 25 Jun 2022, 15:31

Re: UIA v2

Post by mora145 » 19 Jan 2024, 00:19

Descolada wrote:
17 Jan 2024, 00:12
@mora145 you are trying to Dump an array, which doesn't have that functionality. Instead you can loop through all the elements inside the array and show their contents:

Code: Select all

for el in pointer
    MsgBox el.DumpAll()
@Spitzi if the table rows/cells are inspectable with UIAViewer then you could try looking at them with Accessibility Insights. Sometimes LegacyIAccessible State (or some other property of LegacyIAccessible) property value changes when something is selected (which UIAViewer doesn't show yet). It's likely though that it's a custom implementation and isn't detectable by UIA at all, so you might need to revert to image-based approaches.
Ty a lot! @Descolada
I have some query: Before in V1 of AHK I used to point to an element and with the function to traverse the tree, put +n and get the previous or next element in the tree, no matter if it was parent or child or not. I believe that in V2 this no longer exists. I tried to read the documentation but I can't understand it very well. Sometimes I have child elements and I want to iterate between them and I get the error that no elements have been found. I checked too the examples, but not find much about iteration between elements using the Walker.

FlynnlInfuh
Posts: 1
Joined: 14 Jan 2024, 17:33
Contact:

Re: UIA v2

Post by FlynnlInfuh » 19 Jan 2024, 08:44

Have you tried using UIA.TreeWalker to iterate through child elements, and if so, could you provide more details about the specific issues or errors you encountered during the process in the context of the updated version of AutoHotKey (AHK) you mentioned?

Descolada
Posts: 1141
Joined: 23 Dec 2021, 02:30

Re: UIA v2

Post by Descolada » 19 Jan 2024, 11:46

@songdg, your solution is a perfectly fine one. But if you wanted to be fancy: UIA.FindElementFromArray(cUIA.FindElements({Name:"somename", Type:"Text"}), (el) => el.parent.Type == UIA.Type.ListItem).Click()

@mora145 I don't think it was possible in V1 either to get any next element in the tree like that. If you want to move between siblings then you use Element.WalkTree("+n"), or if to children then Element.WalkTree("n"). If you want to get the next element regardless if child or sibling, then you could use WindowElement.FindElement(UIA.TrueCondition, , , , Element) (that is, searching the window element and specifying a starting element).

buster25
Posts: 10
Joined: 18 Jan 2024, 01:15

Re: UIA v2

Post by buster25 » 20 Jan 2024, 02:42

Hello, I put a post here, could you take a look at it please viewtopic.php?f=82&t=124995

songdg
Posts: 575
Joined: 04 Oct 2017, 20:04

Re: UIA v2

Post by songdg » 20 Jan 2024, 07:54

@Descolada
Thanks again, really appreciated.

Spitzi
Posts: 313
Joined: 24 Feb 2022, 03:45

Re: UIA v2

Post by Spitzi » 20 Jan 2024, 18:07

@Descolada
I updated to the latest UIA.ahk from your website, but the crashes persist...
I was watching more of your tutorial videos... they are great! Thanks.
I was wondering: can I use a pattern in a FindElement-Function, e.g. in a Table, find all elements of a row, with the pattern "row"?
Thanks and greets

buster25
Posts: 10
Joined: 18 Jan 2024, 01:15

Re: UIA v2

Post by buster25 » 22 Jan 2024, 05:36

@Descolada

Hello, I can't select this item, please help me.
image.png
image.png (121.16 KiB) Viewed 704 times

Code: Select all

;#NoTrayIcon
#include C:\New Suite\FUSION 3.0 GREDOS\Lib\UIA.ahk

; POSICIONA LA VENTANA
SetTitleMatchMode 1
WinActivate "Asiento Inscripción: Inscripción"
; INICIALIZA
WinActivate "ahk_exe Experior.exe"
npEl := UIA.ElementFromHandle("ahk_exe Experior.exe")

;Selecciona el TAB plantillas
npEl.FindElement({Name:"Plantillas", Type:"TabItem"}).Select()
Sleep(500)
npEl.FindElement({Name:"Plantillas", Type:"Header"}).Click("Right")
Sleep(500)
A_Clipboard := npEl.DumpAll()
npEl.FindElement({Name:"Ajuste perfecto", Type:"MenuItem"}).Click("Right")
ExitApp
image.png
image.png (18.38 KiB) Viewed 704 times

Descolada
Posts: 1141
Joined: 23 Dec 2021, 02:30

Re: UIA v2

Post by Descolada » 22 Jan 2024, 05:49

@buster25 I can't be sure from the image provided but I think the context menu is a separate window from the main window and needs its own ElementFromHandle call. Try instead

Code: Select all

; ... previous code
npEl.FindElement({Name:"Plantillas", Type:"Header"}).Click("Right")
WinWaitNotActive ; wait for Last Found Window to not be active
Sleep(500)
contextMenuEl := UIA.ElementFromHandle("A")
A_Clipboard := contextMenuEl.DumpAll()
contextMenuEl.FindElement({Name:"Ajuste perfecto", Type:"MenuItem"}).Click("Right")
ExitApp
Also I recommend using the UIAViewer for v2 which you can open by running UIA.ahk alone.

buster25
Posts: 10
Joined: 18 Jan 2024, 01:15

Re: UIA v2

Post by buster25 » 22 Jan 2024, 06:05

Thanks @Descolada , no effect. I can't send capture from UIATreeInspector, if Experior.exe. is not active, the menu disappears. I attach the result of the Dump.

Code: Select all

Type: 50032 (Window) Name: "Asiento Inscripción: Inscripción 13" LocalizedType: "ventana" AutomationId: "FormBase" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1: Type: 50033 (Pane) Name: "57229928: UCEditorView" LocalizedType: "panel" AutomationId: "UCEditorView" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1: Type: 50033 (Pane) LocalizedType: "panel" AutomationId: "4719134" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1,1: Type: 50033 (Pane) Name: "Variables" LocalizedType: "panel" AutomationId: "dockPanelVar" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1,1,1: Type: 50033 (Pane) LocalizedType: "panel" AutomationId: "dockPanel1_Container" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1,1,1,1: Type: 50033 (Pane) Name: "62308535: UCTreeVariablesView" LocalizedType: "panel" AutomationId: "ucTreeVariablesView1" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1,1,1,1,1: Type: 50018 (Tab) LocalizedType: "tabulación" AutomationId: "tcNavigation" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1,1,1,1,1,1: Type: 50033 (Pane) Name: "Plantillas" LocalizedType: "panel" AutomationId: "tabPlantillas" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1,1,1,1,1,1,1: Type: 50023 (Tree) LocalizedType: "árbol" AutomationId: "treeLPlantillas" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1,1,1,1,1,1,1,1: Type: 50033 (Pane) LocalizedType: "panel" AutomationId: "FindControlCore" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1,1,1,1,1,1,1,1,1: Type: 50033 (Pane) Name: "Find Panel" LocalizedType: "panel" AutomationId: "rootLayout" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1,1,1,1,1,1,1,1,1,1: Type: 50033 (Pane) Name: "Find Panel" LocalizedType: "panel" AutomationId: "findLayoutControl" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,1,1,1,1,1,1,1,1,1,1,1: Type: 50033 (Pane) LocalizedType: "panel" AutomationId: "teFind" ClassName: "WindowsForms10.Window.b.app.0.e62666_r60_ad1"
1,1,1,1,1,1,1,1,1,1,1,1,1: Type: 50004 (Edit) Value: "Introduzca texto a buscar..." LocalizedType: "editar" AutomationId: "22940442" ClassName: "WindowsForms10.EDIT.app.0.e62666_r60_ad1"
1,1,1,1,1,1,1,1,1,1,1,2: Type: 50000 (Button) Name: "Buscar" LocalizedType: "botón" AutomationId: "btFind" ClassName: "WindowsForms10.Window.b.app.0.e62666_r60_ad1"
1,1,1,1,1,1,1,1,1,1,1,3: Type: 50000 (Button) LocalizedType: "botón" AutomationId: "btClose" ClassName: "WindowsForms10.Window.b.app.0.e62666_r60_ad1"
1,1,1,1,1,1,1,1,1,1,1,4: Type: 50036 (Table) Name: "Root" LocalizedType: "tabla"
1,1,1,1,1,1,1,1,1,1,1,4,1: Type: 50029 (DataItem) Name: "lciCloseButton" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,1,1,1,4,2: Type: 50029 (DataItem) Name: "lciFind" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,1,1,1,4,3: Type: 50029 (DataItem) Name: "lciFindButton" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,1,1,1,4,4: Type: 50029 (DataItem) Name: "lciPrevButton" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,1,1,1,4,5: Type: 50029 (DataItem) Name: "lciNextButton" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,1,1,1,4,6: Type: 50029 (DataItem) Name: "lciClearButton" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,1,1,2: Type: 50036 (Table) Name: "Root" LocalizedType: "tabla"
1,1,1,1,1,1,1,1,1,1,2,1: Type: 50029 (DataItem) Name: "lciFindLayout" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,2: Type: 50025 (Custom) Name: "Panel de cabecera"
1,1,1,1,1,1,1,1,2,1: Type: 50034 (Header) Name: "Plantillas" LocalizedType: "encabezado"
1,1,1,1,1,1,1,1,3: Type: 50026 (Group) Name: "Panel de datos" LocalizedType: "grupo"
1,1,1,1,1,1,1,1,3,1: Type: 50024 (TreeItem) Name: "Nodo0" Value: "AFECCIONES" LocalizedType: "elemento del árbol"
1,1,1,1,1,1,1,1,3,1,1: Type: 50029 (DataItem) Name: "Plantillas row 0" Value: "AFECCIONES" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,3,2: Type: 50024 (TreeItem) Name: "Nodo1" Value: "ANOTACIONES" LocalizedType: "elemento del árbol"
1,1,1,1,1,1,1,1,3,2,1: Type: 50029 (DataItem) Name: "Plantillas row 1" Value: "ANOTACIONES" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,3,3: Type: 50024 (TreeItem) Name: "Nodo2" Value: "APROV. TURNO" LocalizedType: "elemento del árbol"
1,1,1,1,1,1,1,1,3,3,1: Type: 50029 (DataItem) Name: "Plantillas row 2" Value: "APROV. TURNO" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,3,4: Type: 50024 (TreeItem) Name: "Nodo3" Value: "BLOQUES DE TEXTO" LocalizedType: "elemento del árbol"
1,1,1,1,1,1,1,1,3,4,1: Type: 50029 (DataItem) Name: "Plantillas row 3" Value: "BLOQUES DE TEXTO" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,3,5: Type: 50024 (TreeItem) Name: "Nodo4" Value: "CONDICIONES RESOLUTORIAS" LocalizedType: "elemento del árbol"
1,1,1,1,1,1,1,1,3,5,1: Type: 50029 (DataItem) Name: "Plantillas row 4" Value: "CONDICIONES RESOLUTORIAS" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,3,6: Type: 50024 (TreeItem) Name: "Nodo5" Value: "DESCRIPCION DE FINCA" LocalizedType: "elemento del árbol"
1,1,1,1,1,1,1,1,3,6,1: Type: 50029 (DataItem) Name: "Plantillas row 5" Value: "DESCRIPCION DE FINCA" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,3,7: Type: 50024 (TreeItem) Name: "Nodo6" Value: "HIPOTECAS" LocalizedType: "elemento del árbol"
1,1,1,1,1,1,1,1,3,7,1: Type: 50029 (DataItem) Name: "Plantillas row 6" Value: "HIPOTECAS" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,3,8: Type: 50024 (TreeItem) Name: "Nodo7" Value: "INSCRIPCIONES:DIARIO" LocalizedType: "elemento del árbol"
1,1,1,1,1,1,1,1,3,8,1: Type: 50029 (DataItem) Name: "Plantillas row 7" Value: "INSCRIPCIONES:DIARIO" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,3,9: Type: 50024 (TreeItem) Name: "Nodo8" Value: "OTRAS CARGAS" LocalizedType: "elemento del árbol"
1,1,1,1,1,1,1,1,3,9,1: Type: 50029 (DataItem) Name: "Plantillas row 8" Value: "OTRAS CARGAS" LocalizedType: "elemento"
1,1,1,1,1,1,1,1,3,10: Type: 50024 (TreeItem) Name: "Nodo9" Value: "TITULARES" LocalizedType: "elemento del árbol"
1,1,1,1,1,1,1,1,3,10,1: Type: 50029 (DataItem) Name: "Plantillas row 9" Value: "TITULARES" LocalizedType: "elemento"
1,1,1,1,1,1,2: Type: 50019 (TabItem) Name: "Variables" LocalizedType: "elemento de la pestaña"
1,1,1,1,1,1,3: Type: 50019 (TabItem) Name: "Plantillas" LocalizedType: "elemento de la pestaña"
1,1,1,1,1,1,4: Type: 50032 (Window) Name: "Plantillas" LocalizedType: "ventana"
1,1,1,1,1,1,4,1: Type: 50025 (Custom) Name: "Plantillas"
1,1,1,2: Type: 50037 (TitleBar) Name: "Variables" LocalizedType: "barra de título"
1,1,1,2,1: Type: 50000 (Button) Name: "Cerrar" LocalizedType: "botón"
1,1,1,2,2: Type: 50000 (Button) Name: "Acoplar" LocalizedType: "botón"
1,1,1,2,3: Type: 50000 (Button) Name: "Maximizar" LocalizedType: "botón"
1,1,1,2,4: Type: 50000 (Button) Name: "Minimize" LocalizedType: "botón"
1,2: Type: 50004 (Edit) Name: "
                                                                                                          
                                                                                                          
                                                                                                          " LocalizedType: "editar" AutomationId: "richEditControl1" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,2,1: Type: 50014 (ScrollBar) Name: "Vertical" Value: "0" LocalizedType: "barra de desplazamiento" AutomationId: "15863054" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,2,1,1: Type: 50000 (Button) Name: "Línea Arriba" LocalizedType: "botón"
1,2,1,2: Type: 50000 (Button) Name: "Página Arriba" LocalizedType: "botón"
1,2,1,3: Type: 50027 (Thumb) Name: "Posición" LocalizedType: "miniatura"
1,2,1,4: Type: 50000 (Button) Name: "Página Abajo" LocalizedType: "botón"
1,2,1,5: Type: 50000 (Button) Name: "Línea Abajo" LocalizedType: "botón"
1,2,2: Type: 50033 (Pane) LocalizedType: "panel" AutomationId: "21693784" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,2,3: Type: 50033 (Pane) LocalizedType: "panel" AutomationId: "19858626" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,3: Type: 50033 (Pane) Name: "AutoHideContainer Right" LocalizedType: "panel" AutomationId: "hideContainerRightVars" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,3,1: Type: 50000 (Button) Name: "Variables" LocalizedType: "botón"
1,4: Type: 50033 (Pane) Name: "The Ribbon" LocalizedType: "panel" AutomationId: "ribbonControl1" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,4,1: Type: 50000 (Button) LocalizedType: "botón"
1,4,2: Type: 50021 (ToolBar) Name: "Quick Access Toolbar" Value: "Quick Access Toolbar" LocalizedType: "barra de herramientas"
1,4,2,1: Type: 50000 (Button) Name: "Deshacer" LocalizedType: "botón"
1,4,2,2: Type: 50000 (Button) Name: "Rehacer" LocalizedType: "botón"
1,4,3: Type: 50018 (Tab) Name: "Ribbon Tabs" Value: "Ribbon Tab List" LocalizedType: "tabulación"
1,4,3,1: Type: 50019 (TabItem) Name: "Inicio" LocalizedType: "elemento de la pestaña"
1,4,3,2: Type: 50019 (TabItem) Name: "Insertar" LocalizedType: "elemento de la pestaña"
1,4,3,3: Type: 50019 (TabItem) Name: "Revisión" LocalizedType: "elemento de la pestaña"
1,4,3,4: Type: 50019 (TabItem) Name: "Libro inscripciones" LocalizedType: "elemento de la pestaña"
1,4,4: Type: 50033 (Pane) Name: "Lower Ribbon" Value: "Lower Ribbon" LocalizedType: "panel"
1,4,4,1: Type: 50033 (Pane) Name: "Inicio" LocalizedType: "panel"
1,4,4,1,1: Type: 50021 (ToolBar) Name: "Archivo" LocalizedType: "barra de herramientas"
1,4,4,1,1,1: Type: 50000 (Button) Name: "Guardar" LocalizedType: "botón"
1,4,4,1,1,2: Type: 50000 (Button) Name: "Guardar" LocalizedType: "botón"
1,4,4,1,1,3: Type: 50000 (Button) Name: "Fusionar modelo" LocalizedType: "botón"
1,4,4,1,1,4: Type: 50000 (Button) Name: "Variables" LocalizedType: "botón"
1,4,4,1,1,5: Type: 50000 (Button) Name: "Vista previa" LocalizedType: "botón"
1,4,4,1,1,6: Type: 50000 (Button) Name: "Vista previa selección" LocalizedType: "botón"
1,4,4,1,1,7: Type: 50000 (Button) Name: "Generar PDF" LocalizedType: "botón"
1,4,4,1,1,8: Type: 50000 (Button) Name: "Imprimir" LocalizedType: "botón"
1,4,4,1,1,9: Type: 50011 (MenuItem) Name: "Impresora: Canon INSCRIPCIONES" LocalizedType: "elemento de menú"
1,4,4,1,2: Type: 50021 (ToolBar) Name: "Portapapeles" LocalizedType: "barra de herramientas"
1,4,4,1,2,1: Type: 50000 (Button) Name: "Pegar" LocalizedType: "botón"
1,4,4,1,2,2: Type: 50000 (Button) Name: "Cortar" LocalizedType: "botón"
1,4,4,1,2,3: Type: 50000 (Button) Name: "Copiar" LocalizedType: "botón"
1,4,4,1,2,4: Type: 50000 (Button) Name: "Seleccionar todo" LocalizedType: "botón"
1,4,4,1,2,5: Type: 50000 (Button) Name: "Copiar con formato" LocalizedType: "botón"
1,4,4,1,2,6: Type: 50000 (Button) Name: "Pegar con formato" LocalizedType: "botón"
1,4,4,1,2,7: Type: 50000 (Button) Name: "Seleccionar texto modificable" LocalizedType: "botón"
1,4,4,1,3: Type: 50021 (ToolBar) Name: "Fuente" LocalizedType: "barra de herramientas"
1,4,4,1,3,1: Type: 50000 (Button) Name: "Elemento" LocalizedType: "botón"
1,4,4,1,3,2: Type: 50000 (Button) Name: "Elemento" LocalizedType: "botón"
1,4,4,1,3,3: Type: 50000 (Button) Name: "Agrandar Fuente" LocalizedType: "botón"
1,4,4,1,3,4: Type: 50000 (Button) Name: "Encoger Fuente" LocalizedType: "botón"
1,4,4,1,3,5: Type: 50002 (CheckBox) Name: "Negrita" LocalizedType: "casilla"
1,4,4,1,3,6: Type: 50002 (CheckBox) Name: "Cursiva" LocalizedType: "casilla"
1,4,4,1,3,7: Type: 50002 (CheckBox) Name: "Subrayado" LocalizedType: "casilla"
1,4,4,1,3,8: Type: 50002 (CheckBox) Name: "Subrayado Doble" LocalizedType: "casilla"
1,4,4,1,3,9: Type: 50002 (CheckBox) Name: "Tachado" LocalizedType: "casilla"
1,4,4,1,3,10: Type: 50002 (CheckBox) Name: "Doble Tachado" LocalizedType: "casilla"
1,4,4,1,3,11: Type: 50002 (CheckBox) Name: "Superíndice" LocalizedType: "casilla"
1,4,4,1,3,12: Type: 50002 (CheckBox) Name: "Subíndice" LocalizedType: "casilla"
1,4,4,1,3,13: Type: 50000 (Button) Name: "Color de fuente" LocalizedType: "botón"
1,4,4,1,3,13,1: Type: 50000 (Button) Name: "Abrir" LocalizedType: "botón"
1,4,4,1,3,14: Type: 50000 (Button) Name: "Color de resaltado del texto" LocalizedType: "botón"
1,4,4,1,3,14,1: Type: 50000 (Button) Name: "Abrir" LocalizedType: "botón"
1,4,4,1,3,15: Type: 50031 (SplitButton) Name: "Fuente..." LocalizedType: "botón de división"
1,4,4,1,4: Type: 50021 (ToolBar) Name: "Párrafo" LocalizedType: "barra de herramientas"
1,4,4,1,4,1: Type: 50002 (CheckBox) Name: "Viñetas" LocalizedType: "casilla"
1,4,4,1,4,2: Type: 50002 (CheckBox) Name: "Numeración" LocalizedType: "casilla"
1,4,4,1,4,3: Type: 50002 (CheckBox) Name: "Lista Multinivel" LocalizedType: "casilla"
1,4,4,1,4,4: Type: 50000 (Button) Name: "Disminuir Sangría" LocalizedType: "botón"
1,4,4,1,4,5: Type: 50000 (Button) Name: "Aumentar Sangría" LocalizedType: "botón"
1,4,4,1,4,6: Type: 50002 (CheckBox) Name: "Alinear texto a la izquierda" LocalizedType: "casilla"
1,4,4,1,4,7: Type: 50002 (CheckBox) Name: "Centrar" LocalizedType: "casilla"
1,4,4,1,4,8: Type: 50002 (CheckBox) Name: "Alinear texto a la derecha" LocalizedType: "casilla"
1,4,4,1,4,9: Type: 50002 (CheckBox) Name: "Justificar" LocalizedType: "casilla"
1,4,4,1,4,10: Type: 50011 (MenuItem) Name: "Espaciado de Líneas" LocalizedType: "elemento de menú"
1,4,4,1,4,10,1: Type: 50002 (CheckBox) Name: "1.0" LocalizedType: "casilla"
1,4,4,1,4,10,2: Type: 50002 (CheckBox) Name: "1.5" LocalizedType: "casilla"
1,4,4,1,4,10,3: Type: 50002 (CheckBox) Name: "2.0" LocalizedType: "casilla"
1,4,4,1,4,10,4: Type: 50011 (MenuItem) Name: "Opciones de Espaciado de Líneas..." LocalizedType: "elemento de menú"
1,4,4,1,4,10,5: Type: 50011 (MenuItem) Name: "Añadir Espacio Antes del Párrafo" LocalizedType: "elemento de menú"
1,4,4,1,4,10,6: Type: 50011 (MenuItem) Name: "Quitar Espacios Antes del Párrafo" LocalizedType: "elemento de menú"
1,4,4,1,4,10,7: Type: 50011 (MenuItem) Name: "Añadir Espacio Después del Párrafo" LocalizedType: "elemento de menú"
1,4,4,1,4,10,8: Type: 50011 (MenuItem) Name: "Quitar Espacios Después del Párrafo" LocalizedType: "elemento de menú"
1,4,4,1,4,11: Type: 50000 (Button) Name: "Sombreado" LocalizedType: "botón"
1,4,4,1,4,11,1: Type: 50000 (Button) Name: "Abrir" LocalizedType: "botón"
1,4,5: Type: 50021 (ToolBar) Name: "Caption Bar" Value: "Caption Bar" LocalizedType: "barra de herramientas"
1,5: Type: 50033 (Pane) Name: "Status Bar" LocalizedType: "panel" AutomationId: "ribbonStatusBar1" ClassName: "WindowsForms10.Window.8.app.0.e62666_r60_ad1"
1,5,1: Type: 50020 (Text) Name: "Estático" Value: "X: 3293 Y: 887" LocalizedType: "texto"
1,5,2: Type: 50020 (Text) Name: "Estático" LocalizedType: "texto"
1,5,3: Type: 50000 (Button) Name: "Zoom: 150" LocalizedType: "botón"
1,5,4: Type: 50020 (Text) Name: "Estático" Value: "barStaticItem1" LocalizedType: "texto"
1,5,5: Type: 50020 (Text) Name: "Estático" Value: "barStaticItem2" LocalizedType: "texto"
1,5,6: Type: 50020 (Text) Name: "Estático" Value: "barStaticItem3" LocalizedType: "texto"
1,5,7: Type: 50020 (Text) Name: "Estático" Value: "NOTA MARGINAL CON NOTA DE PASE" LocalizedType: "texto"
1,5,8: Type: 50020 (Text) Name: "Estático" Value: " Libro:     Tomo:     Folio:     Finca: " LocalizedType: "texto"
2: Type: 50037 (TitleBar) Value: "Asiento Inscripción: Inscripción 13" LocalizedType: "barra de título" AutomationId: "TitleBar"
2,1: Type: 50010 (MenuBar) Name: "Sistema" LocalizedType: "barra de menús" AutomationId: "MenuBar"
2,1,1: Type: 50011 (MenuItem) Name: "Sistema" LocalizedType: "elemento de menú"
2,2: Type: 50000 (Button) Name: "Minimizar" LocalizedType: "botón"
2,3: Type: 50000 (Button) Name: "Restaurar" LocalizedType: "botón"
2,4: Type: 50000 (Button) Name: "Cerrar" LocalizedType: "botón"
[Mod edit: Added codebox.]

Descolada
Posts: 1141
Joined: 23 Dec 2021, 02:30

Re: UIA v2

Post by Descolada » 22 Jan 2024, 06:11

@buster25 as you can see the DumpAll doesn't contain an element named "Ajuste perfecto". Is it the DumpAll for npEl or for contextMenuEl?
In any case you somehow need to target the context menu window with ElementFromHandle. If "A" (or active window) didn't work, then perhaps you need to use contextMenuEl := UIA.ElementFromHandle(WinExist("ahk_exe Experior.exe",, "Asiento Inscripción: Inscripción")) instead.

Post Reply

Return to “Scripts and Functions (v2)”