AutoIt
AutoIt es un lenguaje de programación gratuito para Microsoft Windows. En su primera versión, su objetivo principal era crear scripts de automatización (a veces llamados macros) para programas de Microsoft Windows, pero desde entonces ha crecido hasta incluir mejoras tanto en el diseño del lenguaje de programación como en la funcionalidad general.
El lenguaje de programación en AutoIt 1 y 2 se basaba en declaraciones y estaba diseñado principalmente para simular la interacción del usuario. Desde la versión 3 en adelante, la sintaxis de AutoIt es similar a la que se encuentra en la familia de lenguajes BASIC. De esta forma, AutoIt es un lenguaje de programación de tercera generación de propósito general con un modelo de datos clásico y un tipo de datos variante que puede almacenar varios tipos de datos, incluidas matrices.
Un script de automatización de AutoIt se puede convertir en un ejecutable independiente y comprimido que se puede ejecutar en computadoras incluso si no tienen instalado el intérprete de AutoIt. También se incluye como estándar una amplia gama de bibliotecas de funciones (conocidas como UDF o "funciones definidas por el usuario") o están disponibles en el sitio web para agregar funciones especializadas. AutoIt también se distribuye con un IDE basado en el editor gratuito SciTE. El compilador y el texto de ayuda están completamente integrados y proporcionan un entorno estándar de facto para los desarrolladores que utilizan AutoIt.
Historia
1999 | Enero: Primera versión AutoIt (1.0) |
---|---|
Agosto: AutoIt v2 y AutoItX | |
Septiembre: Primer Auto Versión con Compiler | |
2000 | |
2001 | |
2002 | Diciembre: AutoIt v3 (Public Beta) |
2003 | |
2004 | Febrero: AutoIt v3 (Stable) |
2005 | |
2006 | Septiembre: Auto3Lib comenzó |
2007 | Noviembre: AutoIt v3.2.10.0 lanzado, Auto3Lib incorporado en AutoIt v3 |
2008 | May: AutoIt v3.2.12.0 lanzado, incorporando funcionalidad GUI agregada |
Diciembre: AutoIt (y AutoItX) v3.3.0.0 lanzado | |
2009 | Diciembre: AutoIt v3.3.2.0 lanzado |
2010 | Enero: AutoIt v3.3.4.0 liberado |
Marzo: AutoIt v3.3.6.0 lanzado | |
Abril: AutoIt v3.3.6.1 liberado | |
2011 | Diciembre: AutoIt v3.3.8.0 lanzado |
2012 | Enero: AutoIt v3.3.8.1 liberado |
2013 | Diciembre: AutoIt v3.3.10.0 liberado |
2014 | Junio: AutoIt v3.3.12.0 lanzado |
2015 | Julio: AutoIt v3.3.14.0 y v3.3.14.1 liberados |
Septiembre: AutoIt v3.3.14.2 liberado | |
2016 | |
2017 | |
2018 | Febrero: AutoIt v3.3.14.3 liberado |
Marzo: AutoIt v3.3.14.5 liberado | |
2019 | |
2020 | |
2021 | |
2022 | Marzo: AutoIt v3.3.16.0 lanzado |
Septiembre: AutoIt v3.3.16.1 lanzado |
AutoIt1 y AutoIt2 eran proyectos de código cerrado y tenían una sintaxis muy diferente a la de AutoIt3, cuya sintaxis se parece más a VBScript y BASIC.
AutoIt3 fue inicialmente gratuito y de código abierto, con licencia según los términos de la Licencia Pública General GNU, con su versión pública inicial 3.0.100 en febrero de 2004, y tuvo versiones de código abierto en marzo de 2004 y agosto de 2004. Versión 3.0 .102, lanzado en agosto de 2004, era inicialmente de código abierto, pero en enero de 2005 se distribuía como de código cerrado. Las versiones posteriores, a partir de la versión 3.1.0 de febrero de 2005, fueron todas de código cerrado. La versión 3.1.0 también fue la primera versión compatible con scripts GUI.
Proyectos relacionados
El proyecto AutoHotkey, gratuito y de código abierto, derivó 29 de sus funciones del código fuente AutoIt 3.1. La sintaxis de AutoHotkey es bastante diferente de la sintaxis de AutoIt3 y se parece bastante a la sintaxis de AutoIt2.
Características

AutoIt se utiliza normalmente para producir software de utilidad para Microsoft Windows y para automatizar tareas rutinarias, como administración de sistemas, monitoreo, mantenimiento o instalación de software. También se utiliza para simular la interacción del usuario, mediante la cual una aplicación está "controlada" (mediante entrada de formulario automatizada, pulsaciones de teclas, clics del mouse, etc.) para hacer cosas mediante un script AutoIt.
AutoIt también se puede utilizar en la automatización de laboratorios de bajo costo. Las aplicaciones incluyen sincronización de instrumentos, monitoreo de alarmas y recopilación de resultados. También se pueden controlar dispositivos como enrutadores CNC e impresoras 3D.
- Soporte de código de 64 bits desde la versión 3.2.10.0
- Bibliotecas y módulos adicionales para aplicaciones específicas
- Automatizar el envío de entradas y pulsaciones de usuario a aplicaciones, así como a controles individuales dentro de una aplicación
- Funciones de llamada en archivos DLL
- Compatible con Control de Cuentas de Usuario
- Compilando en ejecutables independientes
- Crear interfaces gráficas de usuario, incluyendo cajas de mensajes y entradas
- Incluir archivos de datos en el archivo compilado para ser extraídos al ejecutar
- Manipular ventanas y procesos
- Diseño orientado a objetos a través de una biblioteca
- Jugar sonidos, pausa, reanudar, parar, buscar, obtener la posición actual del sonido y obtener la longitud del sonido
- Ejecutar aplicaciones de consola y acceder a las corrientes estándar
- Lenguaje de script con estructura similar a BASIC para Windows
- Simular los movimientos del ratón
- Supports component object model (COM)
- Apoya las expresiones regulares
- Apoya protocolos TCP y UDP
- Soporte Unicode de la versión 3.2.4.0
Ejemplos
Hola mundo
; Ponga a disposición una biblioteca de valores constantes.#include c)MsgBoxConstants.au3■; Muestra "Hola, mundo!" en una caja de mensajes.MsgBox()$MB_SYSTEMMODAL, "Título", "¡Hola, mundo!")
Automatización de la calculadora de Windows
; Ponga a disposición una biblioteca de valores constantes.#include c)MsgBoxConstants.au3■; Mostrar una caja de mensajes con un tiempo de 6 segundos.MsgBox()$MB_OK, "Atención", "Evitar tocar el teclado o el ratón durante la automatización.", 6); Ejecute la Calculadora de Windows.Corre()"calc.exe"); Espere a que la calculadora se active con un tiempo de 10 segundos.WinWaitActive()"[CLASS:CalcFrame]", ", 10); Si la calculadora no apareció después de 10 segundos, entonces salga del script.Si WinExists()"[CLASS:CalcFrame]") = 0 Entonces... Exit; Escriba automáticamente el año actual en la calculadora.Enviar()@YEAR)Vamos a retrasar un poco el guión para que podamos ver lo que está pasando.Duerme()600); Escriba automáticamente en 'divide por 4', y luego dormir 600 ms.Enviar()"/4")Duerme()600); Golpea la tecla de retorno para mostrar el resultado, y duerme 600 ms.Enviar()"{ENTER")Duerme()600); Copiar el resultado al portapapeles usando el atajo de Windows Ctrl+C.Enviar()"^c"); Declarar, y asignar el contenido del portapapeles a, una variable.Local Resultado = ClipGet(); Verifique si la variable contiene un punto decimal o no.Si StringInStr()Resultado, ".) Entonces... ; Mostrar una caja de mensajes con un tiempo de 5 segundos. MsgBox()$MB_OK, "Año de salto", @YEAR " "no es un año de salto.", 5)Else ; Este mensaje sólo mostrará si el año actual es un año bisiesto. MsgBox()$MB_OK, "Año de salto", @YEAR " "es un año de salto.", 5)EndIf; Cierre la calculadora de Windows - siempre ordenado después.WinClose()"[CLASS:CalcFrame]")
Encontrar promedio
; Buscar Promedio por JohnOne, modificado por czardas#include c)MsgBoxConstants.au3■_Example() ; Ejecute el ejemplo.Func _Example() ; Mostrar una caja de entrada y pedir al usuario que introduzca algunos números separados por comas. Local $sInput = InputBox()"Buscar promedio", "Introducir algunos números separados por comas: 1.2,42,100,3"); Si se produjo un error, salga del script.Si @error Entonces... Exit ; Populate un array con la entrada del usuario. Local $aSplit = StringSplit()$sInput, ") ; Pase el array a la función _Find_Average() y luego compruebe errores. Local $fAverage = _Find_Average()$aSplit) Si @error Entonces... Exit ; Mostrar el resultado en una caja de mensajes. MsgBox()$MB_OK, "Buscar promedio", "Resultado: " " $fAverage)EndFunc ;== EjemploFunc _Find_Average()$aArray) ; Si la entrada no es del tipo correcto (una matriz), entonces devuelve un error junto con los detalles. Si No IsArray()$aArray) Entonces... Regreso SetError()1, 0, VarGetType()$aArray); Los cheques más detallados son posibles, pero para brevedad sólo uno se realiza aquí. ; Declarar una variable para almacenar la suma de los números. Local $iArraySum = 0 ; Ábrelo a través de la matriz. Para $i = 1 A $aArray[0] ; Incrementar la suma por el número en cada elemento array. $iArraySum += Número()$aArray[$i]) Siguiente ; Volver el promedio redondeado a 2 lugares decimales. Regreso Ronda()$iArraySum / $aArray[0] 2)EndFunc ;== Find_Average