Sign in to follow this  
Followers 0
sengsational

au3record generated code is not runnable

4 posts in this topic

I've used autoit before, but always coded from scratch.  I decided to try to run au3record, and I bet this is a 'dumb question', but why does write code that doesn't pass syntax check?

+>         SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE   UserDir => C:\Users\Owner\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\Owner\AppData\Local\AutoIt v3\SciTE 
#region --- Au3Recorder generated code Start (v3.3.9.5 KeyboardLayout=00000409)  ---

Run('C:\Program Files (x86)\spacemonger\SpaceMonger.exe')
_WinWaitActivate("SpaceMonger","")
MouseClick("left",542,44,1)
_WinWaitActivate("About SpaceMonger","SpaceMonger Version ")
MouseClick("left",183,240,1)
_WinWaitActivate("SpaceMonger","")
MouseClick("left",1405,13,1)
#endregion --- Au3Recorder generated code End ---

That is exactly what the recorder created.  All the stuff on the first line causes the syntax checker to go into a convulsion, so I just deleted that.

But "_WinWaitActivate"?  With an underscore at the front of it?

There must be something that's gotten completely by me.  Anyone willing to put me on the right track?

Share this post


Link to post
Share on other sites



Why not just google _winwaitactivate 

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

Good question, what version are you using?  V 3.1 does not do that whereas 3.3 does appear to do it ...

In the meantime you could save the file and use string replace to swap out the function names.

It appears related to a known bug that was closed: https://www.autoitscript.com/trac/autoit/ticket/2121

This ticket was closed when running it from scite.  That version of Au3record has an option to "generate internal functions" which would create a UDF for winwaitactivate.  However, I don't see that in version 3.3 of the standalone file that ships in the Extras.  Also, the standalone version from 3.1 does not seem to have that issue (it also has no option to generate internal functions).

I updated the ticket with a link to this thread.  In the meantime, standalone version 3.1, Scite with the option to generate internal UDFs, or a string replace will fix this for you.

Oh yeah, :>, you could also just include the UDF in your script.

Func _WinWaitActivate($title,$text,$timeout=0)
    WinWait($title,$text,$timeout)
    If Not WinActive($title,$text) Then WinActivate($title,$text)
    WinWaitActive($title,$text,$timeout)
EndFunc

 

Edited by Jfish

Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt

Share this post


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
Sign in to follow this  
Followers 0

  • Similar Content

    • Devy
      By Devy
      So I'm trying to use AU3Record to record some simple mouse clicks, but when I hit record and do the mouse clicks, the coords it gives back are for my other monitor...  As in I do the mouse clicks on monitor one, but it gives me coords for monitor two.  Is there any way to fix this?