tuto autoit

Download Tuto Autoit

Post on 11-Aug-2015

113 views

Category:

Documents

8 download

Embed Size (px)

TRANSCRIPT

Un libro sobre Autoit script

Mster of AutoitDesarrollo de automatismosCarlos Hernndez Gmez 27/09/2009

Aprende a programar con ejemplos prcticos.

Mster of AutoitDesarrollo de automatismos Carlos Hernndez Gmez Introduccin a Autoit Script AutoIt es un sistema de programacin gratuito. Adems de automatizar tareas usando combinaciones de teclas simuladas, clic de ratn, comandos de Windows y ficheros Script cuenta con ActiveX, dlls y plugins, como cualquier lenguaje dinmico al estilo PHP. Wikipedia Caractersticas cmo lenguaje de Script Autoit nos ofrece, de manera muy rpida, un control absoluto de un ordenador, mediante cortas lneas de cdigo podemos automatizar una tarea que nos llevara horas/das hacerla. Los automatismos son el punto fuerte de Autoit, pero no solo de automatismos vive este lenguaje, con Autoit podremos crear una aplicacin que nos grabe un CD a las 00:00 cada da o una aplicacin que nos ingrese dinero en nuestra cuenta de las islas caimn, adems podremos crear un sistema de gestin tipo CRM con interface o un videojuego. De manera muy rpida podramos nombrar estas caractersticas:

2

La sintaxis es sencilla. De fcil comprensin. Tiene generador de macros y editor grfico de formularios (IDE). Ejecutables de 250-450kb. Soporte vista UAC y expresiones regulares. Rpido y con control de otros programas. Sin APIs externas, ya que las incluye todas. Pocas lneas de cdigo. Una comunidad de usuarios renovando Autoit continuamente. Soporte total para ejecutables de Windows (Internet Explorer, Windows Media Player, Itunes) No hay que definir los tipos de datos de las variables Soporte para llamadas Win32 Dll Qu es Autoit Script?

En resumidas cuentas, Autoit Script es un lenguaje de script creado en C++ por Jonathan Bennett 1999-2009. Este lenguaje de script nos ayudar a crear aplicaciones que con otros lenguajes nos llevara mucho tiempo y tendramos que escribir ms lneas de cdigo.

Mster of AutoitDesarrollo de automatismos Carlos Hernndez Gmez Getting started!! Lo primero y bsico, es descargar Autoit: http://www.autoitscript.com/autoit3/downloads.shtml Autoit lo podremos instalar en las siguientes plataformas de Windows: Windows 2000, XP, 2003, Windows Vista Autoit no depende de libreras externas, una vez terminada la instalacin de Autoit podrmos empezar a crear nuestras aplicaciones. El editor de texto predeterminado en Autoit es Scite, ser el que usemos en este libro, puesto que nos ofrece una manera rpida de compilacin y resaltado de texto en color (Highlight). 3

Ejemplo de cdigo resaltado en Scite (App: WowMachinimaTool)

Nuestro primer programa (Hola Mundo!!) Para empezar a crear nuestro primer programa, vamos al escritorio y pulsamos botn derecho > Nuevo > Autoit V3 Script. Sobre el fichero creado nuevamente botn derecho y Edit Script (si hiciramos doble clic en l se ejecutara la aplicacin) despus de esto se abrir el editor Scite.

Mster of AutoitDesarrollo de automatismos Carlos Hernndez Gmez 4

Ejemplo de ventana de Scite con el contenido creado por Autoit en el fichero Nuevo Autoit V3 Script.au3

Autoit nos genera automticamente el contenido que vemos en la imagen de arriba cuando creamos un script desde el escritorio. Una manera rpida de personalizar este contenido sera escribindolo as:

En la imagen de arriba podemos observar cmo escribir 2 tipos diferentes de comentarios, ya sean de varias lneas o de una nica lnea.

Mster of AutoitDesarrollo de automatismos Carlos Hernndez Gmez 5

Vamos a dejarnos de rollos y empecemos a programar un poco. En Autoit podemos hacer un hola mundo de varias maneras. Escribe en una lnea de Scite este cdigo: MsgBox (0,"Hoooray!","Hola mundo " & @CRLF & "Adis mundo!")

Y pulsa la tecla F5, el resultado tendra que ser algo as:

Para guardar el script que hemos creado pulsa Alt + S. El nombre de este fichero es 1.0.au3 (en la carpeta de ejemplos). Si todo ha ido bien y nuestro PC no ha explotado, ya tendremos creado nuestro primer Script. Analizando el cdigo & Sintaxis Con el ejemplo anterior, hemos visto como mostrar un mensaje al usuario final. Pero tenemos que entender cmo lo hemos realizado. La primera parte del cdigo llama a la funcin MsgBox(): MsgBox (Argumento, "Titulo", "Texto" [, timeout [, hwnd]] ) ; Entre [] parmetros opcionales.

Esta funcin que est descrita mas detalladamente en el documento de funciones de Autoit nos permite devolver un mensaje al usuario, y que opcionalmente este mensaje desaparezca en unos segundos, tiene 3 argumento estticos y 2 opciones. Si especificramos el argumento TimeOut tendramos que hacerlo en milisegundos. Declaracin de variables Cmo ya hemos comentado antes, los tipos de variables no tienen que declararse, una variable puede contener un nmero de coma flotante o una cadena de texto, sin necesidad de declarar que contendr esta variable como ocurre con algunos lenguajes (C++ por ejemplo).

Mster of AutoitDesarrollo de automatismos Carlos Hernndez Gmez Un ejemplo de declaracin de variables podra ser este: ConsoleWrite(@CRLF) $MiVariable = 0 ConsoleWrite($MiVariable & @CRLF) $MiVariable = "H0o0o0la!" ConsoleWrite($MiVariable & @CRLF) $MiVariable = StringUpper("texto en mayusculas") ConsoleWrite($MiVariable & @CRLF) 6

Cmo podrs observar, las variables pueden contener nmeros o cadenas, adems podemos llamar a funciones dentro de estas variables. Si ejecutramos el script anterior obtendramos algo as:

Resultado del fichero 2.0.au3, con ejemplo de consolewrite(). Hemos usado la funcin Consolewrite para mostrar en la consola de Scite la informacin. Esta funcin nos ser muy til cuando estemos desarrollando una aplicacin y queramos probar cosas en testo o modo debug. Nuestro primer Automatismo Lleg la hora de la accin, vamos a realizar una aplicacin que haga las siguientes acciones: 1. Ejecutar el bloc de notas 2. Enviar un texto al bloc de notas 3. La aplicacin mover la ventana del bloc de notas aleatoriamente por la pantalla durante 5 iteraciones de un bucle.

Mster of AutoitDesarrollo de automatismos Carlos Hernndez Gmez Cdigo (Fichero: 3.0.au3): ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Partes opcionales ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #NoTrayIcon Opt("WinTitleMatchMode",2) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Definicion de variables ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $Texto = "Este libro msmola" $TituloBloc = "Bloc de notas" ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Inicio de script ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Run("notepad.exe") WinWaitActive($TituloBloc) Send($Texto) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Iteraciones del bucle ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; For $i = 0 to 5 Step + 1 Sleep(1000) $x = Random(0,500) $y = Random(0,500) WinMove($TituloBloc,"",$x,$y) next 7

Quizs antes de que trabajes con este ejemplo sera interesante que lo ejecutaras para ver cul es el resultado. Explicacin del cdigo: Cuando ponemos esta lnea en una aplicacin lo que conseguimos es que nuestra aplicacin no tenga icono en la bandeja de Windows (La zona del reloj) #NoTrayIcon

La funcin Opt() Tambin llamada AutoItSetOption cambia la manera de actuar de algunas funciones internas de Autoit, en este caso lo que conseguimos es que la funcin WinWaitActive() nos busque cualquiera ventana llamada bloc de notas, y asi poder trabajar con esa ventana puesto que de no establecer el argumento 2 en la llamada a Opt() tendramos que buscar el nombre exacto de la ventana, que en este caso sera Sin Ttulo Bloc de notas Opt("WinTitleMatchMode",2)

Mster of AutoitDesarrollo de automatismos Carlos Hernndez Gmez 8

En esta parte hemos definido las variables que usaremos en el programa. Por un lado la variable $Texto contiene el texto que enviaremos al Bloc de notas, y la variable $TituloBloc contiene el titulo de la ventana del bloc de notas, en este caso no es el ttulo entero, y es solo una parte. $Texto = "Este libro msmola" $TituloBloc = "Bloc de notas"

La base del automatismo del programa es esta, la funcin Run() ejecutar una aplicacin externa, para aplicaciones de Windows que ya estn referenciadas no hace falta indicar una ruta por que al escribir notepad.exe es lo mismo que C:\Windows\Notepad.exe , aunque si quisiramos si que podramos usar rutas absolutas. Run("notepad.exe") WinWaitActive($TituloBloc) Send($Texto) La sintaxis de una iteracin de un bucle es exactamente igual a la de otros lenguajes de programacin, como podra ser PHP. Declaramos la variable $i con valor 0 y las iteraciones del bucle sern un total de 5, y adems la variable $i se incrementar en 1 por cada iteracin (Vase el Step +1). Sleep() es una funcin que nos permitir pausar la ejecucin de un programa tantos milisegundos como queramos o creamos oportuno, en este caso 1 segundo. Las variables $X e $Y contienen la funcin Random() , esta funcin generar un nmero aleatorio en un rango especificado, cmo nuestra intencin es que el script mueva la ventana del bloc de notas por la pantalla estableciendo un mximo de 500 sabemos que no nos pasaremos de 500 pixeles, ya que si el numero generado fuera por ejemplo mayor a 2000 no veramos la ventana puesto que se colocara en una posicin fuera de rango de visin. Finalmente utilizamos la funcin WinMove() para mover la ventana con el titulo $TituloBloc a las coordenadas $x e $y For $i = 0 to 5 Step + 1 Sleep(1000) $x = Random(0,500) $y = Random(0,500) WinMove($TituloBloc,"",$x,$y) next

Para terminar la estructura del bloque For usaremos la palabra clave Next. Con esto hemos terminado nuestro primer automatismo (Biennn!!!!), ahora sigamos aprendiendo cosas sobre este fantstico lenguaje.

Mster of AutoitDesarrollo de automatismos Carlos Hernndez Gmez Control de ficheros En Autoit y al igual que en otros lenguajes, tenemos la posibilidad de crear/editar/borrar ficheros. El apartado de gestin de ficheros es muy grande, as que vamos a realizar un pequeo script que gestione