LUA - UDF para AUTOIT - (alternativa al interface de C)

Tus experiencias con la informática, o fuera de la informática
Responder
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

LUA - UDF para AUTOIT - (alternativa al interface de C)

Mensaje por BasicOs »

Podía colocar estos temas en LIBRERÍAS en documentación, o bien en Scripts - Programas, pero he preferido todo lo de LUA tenerlo en CHAT con LUA en la cabecera para tenerlo mejor agrupado. :smt008 :smt008 Espero que haya aceptación y publiqueis vuestros Scripts en lua, o bien en Autoit+LUA. :smt005
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include "LUA.au3"

$lua = _LUA_Open() ; LUA abrir

_LUA_OpenDefaultLibs($lua) ; módulos estándar (si no no va)

_LUA_Push($lua, "number", 666) ; 666 el valor en la pila push (en lugar del número también es un número entero o una cadena, el resultado es el mismo)
_LUA_SetGlobal ( $ lua "Variable_1") ; Asignar el valor en la pila (666)
Variablennamen zuweisen

_LUA_RunFile($lua, "1.lua") ; la ejecución del script 1.lua

_LUA_GetGlobal($lua, "PrintMessage") ; Enviar variable (en este caso función)
_LUA_Push($lua, "string", "Sent by AutoIt") ; enviar parámetros en la pila
_Lua_Call($lua, 1, 0) ; Ejecutar la función con un parámetro y los valores de retorno de 0

;Atento a la salida de consola

_LUA_GetGlobal($lua, "name") ; Enviar a la pila Variable Global (definida en el script)
MsgBox(0, "", _Lua_ToString($lua, 1)) ;Pila con un índice de 1 (la variable) de salida como una cadena en AutoIt y mostrar en un cuadro de mensaje
_LUA_Pop($lua, 1) ; borrar el nombre de la variable (sin uso) de la pila


_LUA_GetGlobal($lua, "Variable_1") ; Empujar Variable_1 variables globales a la pila (se define en AutoIt y los cambios en el script)
MsgBox(0, "", _Lua_ToNumber($lua, 1)); Pila con indice 1 (la Variable) como Float y mostrar en un cuadro de mensaje



_LUA_Close($lua) ;
Ejemplo de LIBRERIA de Lua para Autoit:


Función llamada desde autoit:
function PrintMessage(text) --se llama esto desde Autoit
print("This is a message: "..text) --
end

name = "LUA-script" -- definir nueva variable para devolverla al script de Autoit como un return name

Variable_1 = Variable_1*2 -- Cambiar la variable para devolverla como return Variable_1
Fuente: http://www.autoit.de/index.php?page=Thr ... adID=26878
y en español:
http://translate.google.com/translate?s ... a2a95a63c7
Bajar de aquí: http://www.autoit.de/index.php?page=Att ... ntID=13162
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Re: LUA - UDF para AUTOIT - (alternativa al interface de C)

Mensaje por Jonny »

¿qué es LUA?.

Salu2!
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: LUA - UDF para AUTOIT - (alternativa al interface de C)

Mensaje por BasicOs »

Hola Jonny
Está aquí:
http://www.emesn.com/autoitforum/viewto ... 686#p12686

Pero basicamente OTRO lenguaje que puedes aprender, si te parece bien, :smt035 :smt035 que se parece a Autoit, y que se pueden crear como las dll, librerías externas, para hacer programas de una manera mucho más sencilla, y muchos otros usos.

Cuando veas LUA - verás Q hay otros posts EN CHAT explicando y con ejemplos....

Salu22:)
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Re: LUA - UDF para AUTOIT - (alternativa al interface de C)

Mensaje por Jonny »

mmmm

¡Tiene muy buena pinta esto!. :)
que se pueden crear como las dll, librerías externas, para hacer programas de una manera mucho más sencilla, y muchos otros usos.
¿quieres decir, que pueden crearse DLL's con este lenguaje?.

No he visto más que el link que me has puesto, y el manual de referencia en español que no he mirado aún, pero pones que pueden hacerse aplicaciones multiplataforma... incluso he visto un link de un ejemplo para la psp :).

¿Podrá programarse también para móviles con este lenguaje?. Aunque sea para Symbian ...

¿Este lenguaje es interpretado también, o es compilado?.

Ya puesto, preguntaría, sí soporta multihilo...

Entiendo que es de propósito general, por lo que podrá hacerse de todo con él ¿o tiene alguna limitación?.

Pero no entiendo, por que usar una udf en autoit, para ese lenguaje...

Buen descubrimiento, gracias :P.

Salu2!
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: LUA - UDF para AUTOIT - (alternativa al interface de C)

Mensaje por BasicOs »

Jonny escribió: que se pueden crear como las dll, librerías externas, para hacer programas de una manera mucho más sencilla, y muchos otros usos.
¿Este lenguaje es interpretado también, o es compilado?.
A ver, una cosa es el lenguaje que se usa y otra los muchos entornos y compiladores diferentes para difentes funciones (ejemplo: el lua de CORONA, el de Scite, el del WoW, etc..) cada uno se usa a su manera. En el ejemplo que ves aquí se ve como se puede ejecutar un lua externo desde Autoit, prueba a compilarlo a ver que tal te va usandolo externo.
Aquí viene que se puede hacer de las dos maneras según wikipedia Lua:
Los programas en Lua no son interpretados directamente, sino compilados a código bytecode, que es ejecutado en la máquina virtual de Lua. El proceso de compilación es normalmente transparente al usuario y se realiza en tiempo de ejecución, pero puede hacerse con anticipación para aumentar el rendimiento y reducir el uso de la memoria al prescindir del compilador.
También es posible la compilación en tiempo de ejecución utilizando LuaJIT.
Es decir se puede compilar del todo, o bien dejar que trabaje como un estilo JAVA con su máquina virtual interpretando, o bien como autoit con:
LUA NOMBREDESCRIPT.LUA
¿quieres decir, que pueden crearse DLL's con este lenguaje?.
Lo de las DLL no es exacto, quiero decir que aunque no sean propiamente DLLs, se pueden llamar a funciones COMO VES EN EL ejemplo, que dll es un almacen de funciones precompilado.
No he visto más que el link que me has puesto, y el manual de referencia en español que no he mirado aún, pero pones que pueden hacerse aplicaciones multiplataforma... incluso he visto un link de un ejemplo para la psp :).
La ventaja es que puedes hacer multiplataforma para compatibilizar modulo cliente sencillos que trabajen con tu programa AUTOIT, por ejemplo hay varios pcs windows y 2 telefonos Android o Iphone, y un terminal Linux:
Puedes hacer el programa completo para AUTOIT, y luego una versión básica para LINUX y SmartPhone, basandote en los algoritmos del Autoit, y sobre todo si hay base de datos comunes.
¿Podrá programarse también para móviles con este lenguaje?. Aunque sea para Symbian ...
Seguro que si, pero en otro sistema de programación que no sea CORONA, en CORONA tienen Android Iphone Kindle y Nook, pero no Symbian, de todas maneras el Symbian lo ha sustituido Nokia por Windows P. en los nuevos terminales, y puede que windows 8 en los próximos meses, con lo que autoit funcionaría directamente, ya que sería compatible. (busca windows 8 en el buscador del foro)
Ya puesto, preguntaría, sí soporta multihilo...
Depende del sistema, CORONA trabaja multihilo con unos "esperadores" de eventos en memoria que ejecutan unas funciones que tu has creado, ejemplo:

Event esperador de tocar una imagen -> FUNC
Event esperador de salir de la pantalla -> FUNC

Hay eventos asignados como a botones igual que en Autoit, y luego hay eventos "residentes" que estan siempre esperando otras cosas. De todas maneras con Autoit también se puede simular esto, aunque claro no de esta manera.

Entiendo que es de propósito general, por lo que podrá hacerse de todo con él ¿o tiene alguna limitación?.
Según el compilador..
Pero no entiendo, por que usar una udf en autoit, para ese lenguaje...
Porque si sabes Autoit y Lua puedes usar lo mejor de los dos lenguajes, Autoit es muy bueno para muchas cosas, y hay muuchaas funciones y programas prediseñados (ejemplo automatización, para SISTEMAS, registro, esclavizar pantallas y botones de aplicaciones, rapido de programar, soporte, y muchas otras mejoras. Autoit estuvo especializado para administración de sistemas, y automatización, y luego amplió hasta superar al visual basic. No son iguales pero si compatibles.
Por otro lado, muchos usuarios están haciendo cosas con C++ para añadir funcionalidades, pienso que LUA es muuucho más rápido y facil que C++ y puede hacer algo parecido.
Creo que lo mejor según vayas usandolo puedes ir contandonos tus diferencias. De todas maneras yo estoy empezando tambien en esto.

EDIT:


Aquí bajas la ver 5.1 de LUA para windows con ejemplos y Scite incluidos: (5.2 todavia no esta aquí ya que es del 16/12/2011)

http://code.google.com/p/luaforwindows/downloads/list

Igual para Linux: http://lua-users.org/wiki/LuaBinaries


Para ejecutar los programas/scripts ONLINE (PEGAR EL CODE): http://www.lua.org/cgi-bin/demo?account
Y PULSAR RUN

PARA IPHONE/ANDROID: Aquí la de CORONA (VER limitaciones para subir a los Store)
http://developer.anscamobile.com/user/r ... /coronasdk


Salu22:)
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2085
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: LUA - UDF para AUTOIT - (alternativa al interface de C)

Mensaje por BasicOs »

Recuerda que en el foro Autoit.de TAMBIÉN VIENE para descargarse:

Traductor para ver como funciona:
http://translate.google.com/translate?s ... post218324

Aquí ya que el traductor no descarga bien:
Sin traducir VIENEN los ficheros al PIE de cada post, MIRAR LOS NOMBRES y descargar:

http://www.autoit.de/index.php?page=Thr ... post218324
Y
http://www.autoit.de/index.php?page=Thr ... adID=26871 Ver dOWNLOAD LUA 5.1

SUBFORO DE AUTOIT.de para LUA: http://www.autoit.de/index.php?page=Board&boardID=56
Responder