Jump to content

Recommended Posts

AutoIt3 Lua Wrapper

This is an AutoIt3 wrapper for the Lua scripting language. Consider it beta software, but since I will be using it in commercial product, expect it to evolve.

It has been developped with Lua 5.3.5. Updates will come for new Lua version.

Everything works just fine, except one (big) limitation: Anything that throws a Lua error (using C setjmp/longjmp functionality) will crash your AutoIt program. That means that it is impossible to use throw errors from an AutoIt function called by Lua (luaL_check*, lua_error...).

It is hosted in Github: https://github.com/matwachich/au3lua

Simple example

#include <lua.au3>
#include <lua_dlls.au3>

; Initialize library
_lua_Startup(_lua_ExtractDll())
OnAutoItExitRegister(_lua_Shutdown)

; create new execution state
$pState = _luaL_newState()
_luaopen_base($pState) ; needed for the lua's print function

$iRet = _luaL_doString($pState, 'print("Hello, world!")')
If $iRet <> $LUA_OK Then
	; read the error description on top of the stack
	ConsoleWrite("!> Error: " & _lua_toString($pState, -1) & @CRLF)
	Exit
EndIf

; close the state to free memory (you MUST call this function, this is not AutoIt's automatic memory management, it's a C library)
_lua_close($pState)
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By goldstar
      hey . is it possible  send message to firefox extension  and receive too?
      what is simplest way 
       
    • By SonJoe
      Hi all,
      I have compiled a script to exe (using aut2exe) and delivered it to another machine, which does not have AutoIt installed. There, it does not run, but tells me that an undefined variable is used.
      I assume that the files referred to by #include are not embedded in the exe.
      How can I make sure the included files are available, when I deploy the exe to another machine?
      Thanks in advance for your helpful hints!
    • By fire35
      Hello. I need to write a User Script to add videos to created playlists. On the video watch page on the right, there are recommended videos.
      When cursor on thumbnail upper-right on icon appears plus sign, when cursor on that plus sign appears list of user's playlists and by clicking on playlist name video adding to playlist and appears plus sign located right of playlist name. If video already in some playlist, when cursor on thumbnail plus sign, plus sign already located right of playlist name.
      I think it must be like JS function copy thumbnail, link and video name, after adding that on playlist page. Playlist page initially is some cleared page of site, for example page that doesn't exist - when you put wrong address that's written. User Script saves data to appear it on that page.
      On the playlist page, you can remove videos from it. There is also a page set in the code where you can create or delete a playlist. When creating, along with the name, the address of an empty page is set to which the video will be added.
      On the video viewing page, a plus sign is also needed under it so that this video can be added.
      This is the code for the thumbnail on the right of the page.
      <div id="node-1001410" class="node node-video node-sidebar_teaser clearfix" data-toggle="tooltip" data-placement="top" title="" data-original-title="VIDEO NAME">
          <div>
              <div class="icon-bg">
                                  <div class="right-icon likes-icon">
                          <i class="glyphicon glyphicon-heart"></i> 795                </div>
                  
                  <div class="left-icon likes-icon">
                      <i class="glyphicon glyphicon-eye-open"></i> 37.7k            </div>
                          </div>
              <div class="field field-name-field-video field-type-video field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/videos/gf45ugh5ca"><img src="//Full IMG Address" width="141" height="84" alt="VIDEO NAME" title="VIDEO NAME"></a></div></div></div>
                  </div>
          </div>
      <div>
      On the video viewing page, to add to the playlist, you need to extract the poster address from part of the code
      <div poster = "//Full IMG Address" ...>
      Title from here 
      <h1 class = "title"> VIDEO NAME </h1>
      I think it's worth copying the number of likes and views from here
      <div class="node-views"><i class="glyphicon glyphicon-heart"></i> 380 <i class="glyphicon glyphicon-eye-open"></i> 17,716 </div>
      I rely on you.
    • By Mobius
      Last updated 9/10/21

      Features
      Simple Integrated countermeasures against file and memory analysis based decompilers. Add basic types of resources into the interpreter or other types as raw data. Define multiple programs to execute pre and post build. Create and include pe version information. User defined patches that can be implemented globally on the interpreter and compiler or selectively. Handles its own basic macro's as well as environment variables in most fields for easier path finding. Drag and drop configs (script bound or separate) to the input edit box or to the icon to load them. Configuration settings can be copied to the clipboard or saved as config files or Au3 scripts. Settings can now be saved directly to an AutoIt3 script. Subsystem independant, can act as a gui or console tool. And much more. See next post for update information.
      A3C_97.16b.7z
      A3C_97.16b.7z A3C_98_18b.zip
    • By argumentum
      In the console under the editor in SciTE: 
      if I add @@ Debug(line,column) then it goes there.
      if I add "script.au3" (line,column) then it goes there if loaded.
      if I add "c:\path\script.au3" (line,column) then it loads the file and goes there.
      ...so far so good.
      Since I don't know LUA, nor where that is at, my question is ... where is it at ?
      A silly question because once there I would not know what to do, since I don't know LUA.
      What I want to achieve is, that since there is something delimiting the script and editor position (li,co), a way to have, let's say:
      +I like this color and the text that I care for on the left ["c:\path\script.au3" (line,column)]
      and by having this ["" ()] format ( or anything else, it don't have to be this exact format ), the console would know to jump there.
      If DClick to jump/goto Line,Column can trigger an external EXE or script, I'd take it from there. If it all can be done from LUA then, I'd do it there.
      So I don't mind or know how. I just would like that functionality. In a way that don't require a recompile of SciTE.
      Thanks  
×
×
  • Create New...