Identificar una ventana

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
arganeum
Mensajes: 2
Registrado: 01 Mar 2010, 23:50

Identificar una ventana

Mensaje por arganeum »

Buenas, he estado buscando por el foro pero no he terminado de aclararme. Mi intención es automátizar la instalación del office 2007, el problema viene cuando no veo un identificador único para cada una de las ventanas de la instalación. Les pego aqui la info sacada desde el Window Info:

Código: Seleccionar todo

>>>> Window <<<<
Title:	Microsoft Office Enterprise 2007
Class:	SetupExe
Position:	897, 10
Size:	619, 522
Style:	0x14C80000
ExStyle:	0x00000100
Handle:	0x000103CE

>>>> Control <<<<
Class:	NetUIHWND_CatalystFlexUI
Instance:	1
ClassnameNN:	NetUIHWND_CatalystFlexUI1
Name:	
Advanced (Class):	[CLASS:NetUIHWND_CatalystFlexUI; INSTANCE:1]
ID:	
Text:	
Position:	0, 0
Size:	613, 490
ControlClick Coords:	376, 334
Style:	0x56000000
ExStyle:	0x00000000
Handle:	0x000103D4

>>>> Mouse <<<<
Position:	1276, 373
Cursor ID:	0
Color:	0xE1EFFE

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<
NUIDocumentWindow

>>>> Hidden Text <<<<
Usuario
C:\Archivos de programa\Microsoft Office
En todas las ventanas me marca lo mismo, la única diferencia que veo entre una ventana y otra es el Hidden Text. Sin embargo, no veo ninguna opción (posiblemente no vea bien) de como identificarlo por este campo.

Mi código a medio hacer:

Código: Seleccionar todo

Run("C:\Documents and Settings\Usuario\Mis documentos\Office Enterprise 2007\setup.exe")
; Seguimos los pasos de instalación
WinWaitActive("[CLASS:NetUIHWND_CatalystFlexUI; INSTANCE:1]")
Send("***************** {ENTER}")
WinWaitActive("Microsoft Office Enterprise 2007", "TÉRMINOS DE LICENCIA")
Send("!a {ENTER}")
WinWaitActive("Microsoft Office Enterprise 2007", "NUIDocumentWindow")
Send("{ENTER}")
Se me queda trabado en la primera ventana, alguien me puede enseñar como puedo identificar cada una de las ventanas?

Gracias y un saludo.

EDITADO: uff sorry, me he equivocado de lugar en el posteo, lo siendo moderador :smt022
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Identificar una ventana

Mensaje por BasicOs »

Hola
Puedes cambiar el título de donde se te para por "Microsoft Office Enterprise 2007", seguramente es que no encuentra la ventana con los parámetros que das.
Puedes activar con AutoItSetOption() /Opt.
Opt("WinDetectHiddenText", 1) que especifica si el texto oculto puede verse por las funciones de ventana
0 = no detecta texto oculto (por defecto)
1 = Si detecta texto oculto
No obstante para una instalación también puedes usar en la función un tiempo de espera (timeout), o bien desde que aparezca una ventana (aunque sean iguales para las informaciones de identificación), puedes calcular tiempos y enters o Alt+Letra con send().
WinWaitActive("Microsoft Office Enterprise 2007", "TÉRMINOS DE LICENCIA",2) para dos segundos...

Incluso en el peor de los casos puedes usar las funciones de _pixel... _pixelsearch() para busca e identificar un texto por su checksum gráfico, o para ver si hay algún cambio gráfico en una zona específica de la pantalla.
Salu2:) :smt024
Avatar de Usuario
xterix2
Mensajes: 8
Registrado: 10 Feb 2010, 15:52

Re: Identificar una ventana

Mensaje por xterix2 »

Hola.

Te recomiendo que utilices la programación del Office.

Ejecutas desde la carpeta del office setup.exe /admin, te aparecerá una ventana donde elegir como quieres que se instale, una vez revisado todo guardas esa configuración como un fichero .msp, luego ejecutas el office con setup.exe /adminfile "file.msp" y ya tienes tu instalación automatizada.

Un Saludo.
Tomás
arganeum
Mensajes: 2
Registrado: 01 Mar 2010, 23:50

Re: Identificar una ventana

Mensaje por arganeum »

jajaja, funciona!! :D

He probado activando la visualización del texto oculto y me ha funcionado perfectamente. Me falta por probar la función pixelsearch(), seguro que me hará falta en algún momento.

Con respecto a la instalación creando un fichero de respuesta del office, no me lo había planteado, debido a que no me permiten meter nada en el FTP desde el que pienso acceder para hacer las instalaciones del Office.

Muchas gracias a ambos por toda la info, saludos :smt024 .
Responder