Aquí va un minicurso de iniciación para que conozcan el entorno de programación AutoIT
AutoIT es un lenguaje BASIC tipo script creado por Jonathan Bennett y colaboradores, y diseñado para automatizar las ventanas GUI en conjunción con simulación de combinaciones de teclas, movimientos de cursor todo ello con el objetivo de automatizar procesos.
AutoIt puede:
Ejecutar programas Windows and DOS.
simular combinaciones del teclado
simular movimientos y clicks del ratón
mover, ajustar y manipular ventanas
interactuar directamente con ventanas
trabajar con el portapapeles
trabajar con el registro
hacer llamadas a DLL´s
hasta la fecha AutoIT en su versión 3.2.10.0 es de libre uso
se descarga en
http://www.autoitscript.com/autoit3/downloads.shtmlhay otras herramientas que se deben descargar para trabajar holgadamente con todo lo disponible.
http://www.autoitscript.com/autoit3/scite/downloads.shtmlprimero instalar autoit-v3-setup.exe y luego SciTE4AutoIt3.exe
-
Creando la primera ventana con un mensaje "Hola Mundo"vamos a escribir un programa que muestre una ventana con un mensaje que diga "Hola Mundo"
para ello, creamos un nuevo script (extensión .au3)
se creará un archivo llamado "Nuevo AutoIt v3 Script.au3" , al abrirlo veremos que AutoIT tiene su propio editor llamado SciTE y con la plantilla por defecto:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.10.0
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
nota: para facilitar el aprendizaje diré los pasos mas sencillos y después explicaré en detalle
si instalamos SciTE4AutoIt3.exe, en el menú tool aparecerá un conjunto de utilidades e instrucciones, vamos a clicar en Koda (Form Designer) ó alt+m
Koda es una especie de
RAD y a mi parecer es fundamental tenerlo y usarlo porque éste nos generará el código correspondiente a los controles que queramos usar y ubicar en el formulario.
si han trabajado con IDE tipo RAD, esto será pan comido, porque la temática es la misma.
se buscan los controles, se pegan en el formulario y después de una pequeña configuración, se genera el código correspondiente. Bien sigamos con el ejemplito:
pegamos un botón:
y listo, lo dejamos así por los momentos. Ahora nos vamos al menú herramientas y clicamos:
allí aparecerá una ventana con el código generado por el koda,
clicamos en "Insertar en SciTE" y cuando vayamos a nuestra pantalla del SciTE, veremos que se ha insertado realmente el código.
el código es éste:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.10.0
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
Local $Form1 = GUICreate("Form1", 335, 239, 234, 180)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
GUISetOnEvent($GUI_EVENT_MAXIMIZE, "Form1Maximize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
Local $Button1 = GUICtrlCreateButton("Button1", 112, 96, 105, 41, 0)
GUICtrlSetOnEvent(-1, "Button1Click")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
Sleep(100)
WEnd
Func Button1Click()
EndFunc
Func Form1Close()
EndFunc
Func Form1Maximize()
EndFunc
Func Form1Minimize()
EndFunc
Func Form1Restore()
EndFunc
; Script Start - Add your code below here
ajá ahora viene la parte d explicar todo aquello. pero así como está se puede ejecutar correctamente (tecleando F5) si quieren hagan la prueba, solo mostrará la ventana con el botón
una cosa, si intentan cerrar el programa clicando en el botón arriba a la derecha (el que tiene una x dibujada), no cerrará.
no se asusten que el programa se detiene alt+tabulando al SciTE y tecleando ctrl+pause
la razón de porque no se puede cerrar es simple, en la función:
Func Form1Close()
EndFunc
no hay orden que ejecutar, bien, allí se escribe la función
Exitnoten que el SciTE tiene la opción de autocompletado y las instrucciones las tenemos a la mano. La función quedará:
Func Form1Close()
Exit
EndFunc
asi garantizamos que podemos cerrar clicando en el evento cerrar (interactuando con la ventana)
-
Explicando las lineas relevantes:
la primera línea de código visible es:
Opt("GUIOnEventMode", 1)digamos que AutoIT tiene 2 modos de atender eventos, uno es por encuesta, preguntando en cada ciclo por si cada uno de los controles tiene un mensaje que dar; y el otro que es crear un bucle eterno y que al producirse un evento, el programa se vaya a esa zona donde se encuentra la función correspondiente a ese control.
en este minicurso me enfocaré a este último evento, ya que la programación es practicamente procedural y con funciones la vida es mejor
Local $Form1 = GUICreate("Form1", 335, 239, 234, 180)
GUICreate es la función que crea la ventana, se pide una serie de argumentos como, titulo de la ventana, ancho, alto y posición en el escritorio, también hay parametros adicionales para añadirle estilos de ventanas y otras configuraciones (se verá a futuro)
como toda función devuelve un valor que se almacenará el una variable local llamada Form1
nota: todas la variables se declaran anteponiendo "$" sea del tipo que sea.
si la función GUICreate devuelve cero, ocurrió un error (y con un tratamiento de control de errores se puede controlar ese proceso)
si fué exitosa, devuelve el
handle de la ventana.
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")traducido, significa que le asignaremos un evento a cerrar el formulario, como veniamos hablando anteriormente, al clicar en el botón cerrar
se enviará el mensaje:
$GUI_EVENT_CLOSE al formulario, y con GUISetOnEvent le estamos diciendo que atenderá la función Func Form1Close()
nota: $GUI_EVENT_CLOSE es una constante que se llama desde
#include <GUIConstants.au3>
Local $Button1 = GUICtrlCreateButton("Button1", 112, 96, 105, 41, 0)
GUICtrlSetOnEvent(-1, "Button1Click")
GUICtrlCreateButton es similar a GUICreate, y crea el botón con sus argumentos respectivos, además que se "activa" su correspondiente evento
nota: "-1" a veces indica que es el dato por defecto que se escribirá y en este caso indica que tomará el handle del botón, es igual que si escribieramos:
Local $Button1 = GUICtrlCreateButton("Button1", 112, 96, 105, 41, 0)
GUICtrlSetOnEvent($Button1, "Button1Click")
GUISetState(@SW_SHOW)cambia el estado de la ventana: mi traducción: manda y/o refresca la nueva configuración de la ventana
While 1
Sleep(100)
WEndel bucle eterno comentado anteriormente, allí se quedará hasta que se active un evento y después regresa al bucle en espera de otro evento.
inicialmente queriamos mostrar un mensaje, bueno eso se hace con la función MsgBox (si si similar al visual basic jeje), e iría :
Func Button1Click()
MsgBox(0,"Mensaje a mostrar","Hola Mundo")
EndFuncponiendo cero como flag estamos indicando que queremos el botón de OK
se me ha pasado por alto lo del Koda, existe la posibilidad de guardar el formulario que creamos (con extensión .kxf) y abrirlo posteriormente para modificarlo
bien, ya logramos escribir y compilar nuestro primer programa en AutoIT
Notas:
en la ayuda del AutoIT se encuentra TODA la información necesaria de todas las funciones, explicadas y con situaciones especiales, también hay scripts de ejemplos que nos ayudan a entender como funcionan.