Leer datos de objetos no reconocidos
Leer datos de objetos no reconocidos
Hola a todos! soy nuevo en el foro y usando la herramienta, la verdad que muy novato y espero que me puedan ayudar, porque estoy en aprietos en el trabajo jajaaj.
Creo que es bastante avanzado ,pero seguro alguno puede ayudarme.
Me encuentró con el siguiente problema al tener que leer los datos de una tabla del aplicativo a automatizar:
El AutoIT Windows Info no me reconoce los valores de la tabla, sino la tabla completa:
Si capturo el borde del objeto, me devuelve lo siguiente:
Si capturo el interior de la tabla, me devuelve lo siguiente:
https://lh3.googleusercontent.com/-H2Ql ... eTabla.PNG
Bueno, la verdad soy muy nuevo y no supe ni por donde empezar. La aplicación es .NET , quiza con alguna libreria externa el autoIt reconosca la tabla? hay alguna manera de obtener la tabla como objeto y luego recorrerla? por lo que vi, el autoIt no maneja objetos de la manera convencional.
desde ya gracias!
Creo que es bastante avanzado ,pero seguro alguno puede ayudarme.
Me encuentró con el siguiente problema al tener que leer los datos de una tabla del aplicativo a automatizar:
El AutoIT Windows Info no me reconoce los valores de la tabla, sino la tabla completa:
Si capturo el borde del objeto, me devuelve lo siguiente:
Si capturo el interior de la tabla, me devuelve lo siguiente:
https://lh3.googleusercontent.com/-H2Ql ... eTabla.PNG
Bueno, la verdad soy muy nuevo y no supe ni por donde empezar. La aplicación es .NET , quiza con alguna libreria externa el autoIt reconosca la tabla? hay alguna manera de obtener la tabla como objeto y luego recorrerla? por lo que vi, el autoIt no maneja objetos de la manera convencional.
desde ya gracias!
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Leer datos de objetos no reconocidos
Te voy a copiar un fragmento de un post anterior mío :
Puedes utilizar IUIAutomation de microsoft. Me ha sacado de muchos aprietos para controles no estandars de windows que el Autoit Windows Info no los reconocía y por este método sí. Tienes la udf hecha por junkew en el foro ingles: https://www.autoitscript.com/forum/topi ... ie/?page=1 . Está muy bien. Lee un poco y verás que te solucionará muchos problemas de este tipo. Por cierto, tiene una especie de Autoit Windows info propio para señalar el control que quieres y te genere el código general automáticamente.
Añadir que también trae varios ejemplos, y que además su hilo en el foro ingles contiene muchos post con ejemplos y dudas. Por lo tanto lo tienes casi todo resuelto.
Pero si te atascas en alguna cosa, dila en el foro. Yo ya tengo alguna experiencia con esta udf .
Saludos.
Puedes utilizar IUIAutomation de microsoft. Me ha sacado de muchos aprietos para controles no estandars de windows que el Autoit Windows Info no los reconocía y por este método sí. Tienes la udf hecha por junkew en el foro ingles: https://www.autoitscript.com/forum/topi ... ie/?page=1 . Está muy bien. Lee un poco y verás que te solucionará muchos problemas de este tipo. Por cierto, tiene una especie de Autoit Windows info propio para señalar el control que quieres y te genere el código general automáticamente.
Añadir que también trae varios ejemplos, y que además su hilo en el foro ingles contiene muchos post con ejemplos y dudas. Por lo tanto lo tienes casi todo resuelto.
Pero si te atascas en alguna cosa, dila en el foro. Yo ya tengo alguna experiencia con esta udf .
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Leer datos de objetos no reconocidos
Muchisimas gracias por responder!, Estube leyendo bastante, excede un poco mi conocimiento pero pude detectar botones que antes no podia..
Lo que mucho no me cierra es como captar tal vez el atributo Titulo del objeto, sin pasarle el titulo como parametro jaja,
o bien, una vez que tengo el objeto , leerlo. Con getvalue no me trae nada. Me refiero al texto del bloque que agarré.
Necesitaria la manera de que, agarrando un objeto, me lea el texto de sus subObjetos.
Bueno la verdad, seria genial si me podes ayudar, pero yo por mi parte sigo experimentando, muchisimas gracias!!!!
Lo que mucho no me cierra es como captar tal vez el atributo Titulo del objeto, sin pasarle el titulo como parametro jaja,
o bien, una vez que tengo el objeto , leerlo. Con getvalue no me trae nada. Me refiero al texto del bloque que agarré.
Necesitaria la manera de que, agarrando un objeto, me lea el texto de sus subObjetos.
Bueno la verdad, seria genial si me podes ayudar, pero yo por mi parte sigo experimentando, muchisimas gracias!!!!
Re: Leer datos de objetos no reconocidos
Hola! estoy teniendo un problema al querer leer una propiedad de un objeto que capturé
te cuento lo que hice, primero copie el Standart code que me dió el SimpleSpy,
luego en vez de hacer clic hice lo siguiente
Pero en vez de devolverme lo que quiero ,me muestra esto:
que puede ser? cual es la manera correcta de captar el valor de la propiedad de un objeto ??
Te super agradeceria si me podes responder!! saludossssssssss
te cuento lo que hice, primero copie el Standart code que me dió el SimpleSpy,
Código: Seleccionar todo
#include "UIAWrappers.au3"
main()
func main()
Local $oP8=_UIA_getObjectByFindAll($UIA_oDesktop, "Title:=Clientes (50542601) - testing@optes (Cablevision S.A.);controltype:=UIA_WindowControlTypeId;class:=WindowsForms10.Window.8.app.0.215472d", $treescope_children)
_UIA_Action($oP8,"setfocus")
Local $oP7=_UIA_getObjectByFindAll($oP8, "Title:=;controltype:=UIA_PaneControlTypeId;class:=WindowsForms10.Window.8.app.0.215472d", $treescope_children)
_UIA_Action($oP7,"setfocus")
Local $oP6=_UIA_getObjectByFindAll($oP7, "Title:=;controltype:=UIA_TabControlTypeId;class:=WindowsForms10.Window.8.app.0.215472d", $treescope_children)
_UIA_Action($oP6,"setfocus")
Local $oP5=_UIA_getObjectByFindAll($oP6, "Title:=;controltype:=UIA_PaneControlTypeId;class:=WindowsForms10.Window.8.app.0.215472d", $treescope_children)
_UIA_Action($oP5,"setfocus")
Local $oP4=_UIA_getObjectByFindAll($oP5, "Title:=;controltype:=UIA_PaneControlTypeId;class:=WindowsForms10.Window.8.app.0.215472d", $treescope_children)
_UIA_Action($oP4,"setfocus")
Local $oP3=_UIA_getObjectByFindAll($oP4, "Title:=;controltype:=UIA_TabControlTypeId;class:=WindowsForms10.Window.8.app.0.215472d", $treescope_children)
_UIA_Action($oP3,"setfocus")
Local $oP2=_UIA_getObjectByFindAll($oP3, "Title:=;controltype:=UIA_PaneControlTypeId;class:=WindowsForms10.Window.8.app.0.215472d", $treescope_children)
_UIA_Action($oP2,"setfocus")
Local $oP1=_UIA_getObjectByFindAll($oP2, "Title:=;controltype:=UIA_TableControlTypeId;class:=WindowsForms10.Window.8.app.0.215472d", $treescope_children)
_UIA_Action($oP1,"setfocus")
EndFunc
Código: Seleccionar todo
local $texto = _UIA_GetPropertyValue("Title:=CORPORATIVE_CUSTOMERCUSTOMERCONTRACT row 1;controltype:=UIA_CustomControlTypeId;class:=","UIA_LegacyIAccessibleValue");
InputBox("",$texto)
que puede ser? cual es la manera correcta de captar el valor de la propiedad de un objeto ??
Te super agradeceria si me podes responder!! saludossssssssss
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Leer datos de objetos no reconocidos
Se puede hacer de varias maneras. Prueba con este código:
Puedes ver las variables de las propiedades de los objetos enlazadas al nombre que muestra simplespy.au3 en el archivo UIAWrappers.au3 . Están definidas en una variable matriz.
Las variables están definidas una a una en el archivo CUIAutomation2.au3 .
Te recomiendo que examines las funciones del archivo UIAWrappers.au3 para saber más, pero tienes que tener un determinado nivel de autoit.
Saludos.
Código: Seleccionar todo
Local $oUIElement=_UIA_getobject("Title:=Clientes (50542601) - testing@optes (Cablevision S.A.);controltype:=UIA_WindowControlTypeId;class:=WindowsForms10.Window.8.app.0.215472d")
If IsObj($oUIElement) Then
Local $valorPropiedad=_UIA_getPropertyValue($oUIElement,$UIA_LegacyIAccessibleValuePropertyId)
MsgBox(0,"",$valorPropiedad)
Else
MsgBox(16,"Error", "No hay ningún objeto.")
EndIf
Las variables están definidas una a una en el archivo CUIAutomation2.au3 .
Te recomiendo que examines las funciones del archivo UIAWrappers.au3 para saber más, pero tienes que tener un determinado nivel de autoit.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Leer datos de objetos no reconocidos
Justo ayer a la mañana estube con eso y llege a esa misma conclusión que me contaste, y me funciono!
Muchisimas gracias por la ayuda y tu tiempo ! un saludo!!
Muchisimas gracias por la ayuda y tu tiempo ! un saludo!!