Saltar al contenido principal
Página

Tema 1.3 - Compilación de Scripts y Funciones GUI

Compilación de Scripts con Aut2Exe

Es posible coger los scripts .au3 y compilarlo en un ejecutable independiente el cual se puede usar sin la necesidad de tener AutoIt instalado y sin tener AutoIt3.exe en el ordenador. El proceso de compilación convierte el script, los archivos en el #include y cualquier otro archivo agregado por la función FileInstall en una forma simbólica que luego se comprime y encripta. Por este motivo ninguno de los archivos adicionales son necesarios en tiempo de ejcución.

Nota: El script que vayamos a compilar debe estar libre errores de sintaxis ya que cuando se hace el proceso de compilación no se verifica la sintaxis.

Aut2Exe se puede usar de varias maneras.

  • Primera forma: Buscamos la ruta en donde se instaló AutoIt3 y abrimos la carpeta que tiene el mismo nombre, ahora dentro de ella debemos encontrar una carpeta con nombre Aut2Exe. Una vez ingresada en esa carpeta deberíamos visualizar dos archivos ejecutables Aut2exe (32 bits) y Aut2exe_x64 (64 bits), si nuestro sistema operativo es de 32 bits abrimos el ejecutable Aut2exe de lo contrario, abirmos el ejecutable Aut2exe_x64. Cuando hayamos realizado cualquiera de las dos acciones deberíamos ver esta interfaz.
    1. Busca el archivo de AutoIt (.au3) que deseemos compilar. En este caso busquemos el script del ejemplo Estrctura For.
    2. Seleccionamos la extensión con la que se compilará nuestro script. Escojamos la extensión .exe.
    3. Escogemos la ruta de destino en donde queremos que se guarde nuestro ejecutable. La ruta de destino por defecto es la misma que donde está el script, así que no cambiaremos el destino.
    4. Acá podemos buscar los íconos que queramos colocar en nuestro ejecutable. Aut2Exe trae unos íconos predeterminados si ingresamos a la carpeta de AutoIt3 -> Aut2Exe -> Icons. Si usted lo desea puede seleccionar alguno de ellos.
    5. Me permite colocar otra vez el ícono por defecto si antes se había escogido otro ícono.
    6. Empieza la conversión del script a ejecutable.

    Al hacer estos pasos si vamos a la ruta en donde se encuentra el script Estructura For tendría que haber otro archivo con el mismo nombre pero en formato .exe.

    Si le damos doble clic a este ejecutable, nos mostrará los números del 1 al 8 que era lo que realizaba el script.

  • Segunda forma: Esta manera es más rápida y directa que la primera, lo que debemos hacer es buscar el script que queremos compilar, darle clic derecho y en el menú emergente buscamos la opción Compile Script y le damos clic. Se nos creará automáticamente un ejecutable .exe con el mismo nombre del script.
  • Para ejemplificar esta forma de compilación, buscamos el ejemplo que hicimos del script Estrcutura Do, le damos clic derecho para ver el menú emergente y por último presionamos la opción “Compile Script”.

    Ahora debemos observar nuestro ejecutable.

    Le damos doble clic al archivo ejecutable Estructura Do y deberá tener el mismo el mismo funcionamiento que cuando ejecutábamos el script.

Funciones GUI (Graphical User Interface)

AutoIt nos proporciona la manera de nosotros poder crear interfaces gráficas de usuario las cuales consisten en venetanas y controles.

Una interfaz gráfica de usuario consta de una o más ventanas que cada una de ellas contiene uno o más controles. Las interfaces gráficas están controladas por “eventos”, lo que siginifica que nosotros reaccionamos a eventos como por ejemplo darle un clic a un botón.

Controles GUI

Los controles son cualquier cosa en donde se pueda hacer clic o interactúe con una ventana. A continuación, se dará una pequeña lista de los tipos de controloes que pueden ser creado con AutoIt. Si quiere encontrar la lista completa ingrese al enlace Lista Controles GUI.

Si desea saber más sobre estas funciones ingrese a los siguientes enlaces:

Necesitamos usar el archivo GUIConstantsEx.au3 que se obtiene por medio de la línea #include <GUIConstantsEx.au3> para usar las constantes relacionadas a la GUI básica. Podemos utilizar también otros archivos que están en el enlace Otros Archivos para usar las demás constantes que se relacionan con los demás controles que sirven para crear en la GUI.

Ejemplo: La interfaz gráfica que realizaremos a continuación, será la de una calculadora de Windows, entonces creemos un script al cual llamaremos Calculadora y en ella escribimos las siguientes líneas de código.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <EditConstants.au3>
#include <WindowsConstants.au3>

; Cración de la ventana
GUICreate("Calculadora", 260, 240)

; Menú
Local $idMenuArchivo = GUICtrlCreateMenu("Archivo")
Local $idMenuVista = GUICtrlCreateMenu("Vista")
Local $idMenuEditar = GUICtrlCreateMenu("Editar")
Local $idMenuAyuda = GUICtrlCreateMenu("Ayuda")

; Botones de los dígitos
Local $idBtn0 = GUICtrlCreateButton("0", 54, 171, 36, 29)
Local $idBtn1 = GUICtrlCreateButton("1", 54, 138, 36, 29)
Local $idBtn2 = GUICtrlCreateButton("2", 93, 138, 36, 29)
Local $idBtn3 = GUICtrlCreateButton("3", 132, 138, 36, 29)
Local $idBtn4 = GUICtrlCreateButton("4", 54, 106, 36, 29)
Local $idBtn5 = GUICtrlCreateButton("5", 93, 106, 36, 29)
Local $idBtn6 = GUICtrlCreateButton("6", 132, 106, 36, 29)
Local $idBtn7 = GUICtrlCreateButton("7", 54, 73, 36, 29)
Local $idBtn8 = GUICtrlCreateButton("8", 93, 73, 36, 29)
Local $idBtn9 = GUICtrlCreateButton("9", 132, 73, 36, 29)
Local $idBtnPeriod = GUICtrlCreateButton(".", 132, 171, 36, 29)

; Botones de memoria
Local $idBtnMLimpiar = GUICtrlCreateButton("MC", 8, 73, 36, 29)
Local $idBtnMRestaurar = GUICtrlCreateButton("MR", 8, 106, 36, 29)
Local $idBtnMAlmacenar = GUICtrlCreateButton("MS", 8, 138, 36, 29)
Local $idBtnAgregar = GUICtrlCreateButton("M+", 8, 171, 36, 29)

; Operadores
Local $idBtnCambiarSigno = GUICtrlCreateButton("+/-", 93, 171, 36, 29)
Local $idBtnDivision = GUICtrlCreateButton("/", 171, 73, 36, 29)
Local $idBtnMultiplicar = GUICtrlCreateButton("*", 171, 106, 36, 29)
Local $idBtnRestar = GUICtrlCreateButton("-", 171, 138, 36, 29)
Local $idBtnSumar = GUICtrlCreateButton("+", 171, 171, 36, 29)
Local $idBtnRespuesta = GUICtrlCreateButton("=", 210, 171, 36, 29)
Local $idBtnInversa = GUICtrlCreateButton("1/x", 210, 138, 36, 29)
Local $idBtnSqrt = GUICtrlCreateButton("Sqrt", 210, 73, 36, 29)
Local $idBtnPercentaje = GUICtrlCreateButton("%", 210, 106, 36, 29)
Local $idBtnRetroceso = GUICtrlCreateButton("Retroceso", 54, 37, 63, 29)
Local $idBtnLimpiarE = GUICtrlCreateButton("CE", 120, 37, 62, 29)
Local $idBtnLimpiar = GUICtrlCreateButton("C", 185, 37, 62, 29)

GUICtrlCreateEdit("0.",8,8,239,23,BitOR($ES_READONLY,$ES_RIGHT),$WS_EX_STATICEDGE)

; Muestra la ventana, ya que por defecto viene oculta
GUISetState(@SW_SHOW)

; Muestra la ventana durante 5000 milisegundos
Sleep(5000)

Si ejecutamos el script, nos deberá mostrar la siguiente interfaz.

Se puede observar que se utilizaron algunas funciones de GUI para la creación de la calculadora, ahora describamos brevemente que es lo que hace cada función implementada.

  • La función GUICreate() me permite crear la ventana en donde introduciremos los controles. Los parámetros que se ingresaron son: el título, la anchura y la altura que tendrá la ventana.
  • La función GUICtrlCreateMenu() crea un menú para la ventana. En esta función solo introducimos el texto que va a tener el submenú.
  • La función GUICtrlCreateButton() crea un botón en la ventana. En dicha función se pasaron los siguientes parámetros: texto, la posición con respecto al eje X, la posición con respecto al eje Y, anchura y altura del botón.
  • La función GUICtrlCreateEdit() agrega un control de edición para la ventana. Los parámetros que se usaron fueron los siguientes: el texto, la posición con respecto al eje X, la posición con respecto al eje Y, ancho, alto, estilo y un estilo extendido del control de edición. Notemos que también se usaron las constantes $ES_READONLY para que no se puede modificar el texto del control, $ES_RIGHT para que el texto del control aparezca en la derecha del control y $WS_EX_STATICEDGE para darle un estilo tridimensional a los bordes de nuestro control de edición.
  • La función GUIState() me permite cambiar el estado de la ventana. Le pasamos como parámetro la macro @SW_SHOW para que se visualice dicha ventana.
  • La función Sleep() pausa la ejecución del script. El parámetro que recibe es el tiempo en milisegundos.
Última modificación: lunes, 11 de mayo de 2020, 23:20