Jump to content
tremolux66

Can Aut2Exe write its error messages to the console?

Recommended Posts

Is there a way to have Aut2Exe write its error messages to the console (stdout/stderr) instead of popping up a message window?

We build our project software using Bash scripts that compile AutoIt scripts, compile C programs, install data files, etc. If Aut2Exe encounters an error when compiling an AutoIt script it pops-up a message window, which is problematic when running from a Bash script. It's worse when part or all of the build is executed remotely via SSH: if you're watching the build, you can kill the local script if it gets stuck (i.e., is waiting for Aut2Exe to exit), but the Aut2Exe process is still running on the remote machine and has to be killed there.

A local Aut2Exe already exits with a non-zero status once the window is closed (which is only a minor problem; see below). The big snag is the remote processing; cleaner local processing would be a plus.

Note: For use in repetitive compilation testing, I created an AutoIt script that waits for Aut2Exe error windows to appear and closes them. In a Bash test-script, this error monitoring script is started in the background at the beginning of the test and killed at the end. This could be used with local builds, but I doubt it can be adapted to work on a remote machine since the remote SSH processes run in Windows Session 0 (including the login shell). Session 0 doesn't seem to be an issue if Aut2Exe exits normally, however.

Any suggestions?

(Abandoning remote compilation is not an option at the moment; we're trying to work our way out of that.)


When the going gets tough, the tough start coding.

Share this post


Link to post
Share on other sites

Sure, That is what I use in AutoIt3Wrapper and for that purpose the parameter /ErrorStdOut was implemented a long time ago,

Jos

Share this post


Link to post
Share on other sites

@Jos Thanks. :)

Apparently /ErrorStdOut wasn't implemented yet in AutoIt 3.3.14.2, and we're stuck there for the time being. When I tested it just now, I got a command-line syntax error, and the option wasn't in the usage message.

We did test-build our software w/AutoIt 3.3.14.5 and SQLite 3.24.0.0. This was to demonstrate to corporate IT that a version change wouldn't resolve an anti-malware/compiler issue with a particular script, and to persuade them to configure an exclusion for Aut2Exe.exe (which in fact fixes it). After modifying our code to minimally accommodate 3.3.14.5, we saw the same compilation error but with other scripts, and on a machine where it shouldn't have occurred (less stringent AV config). The IT organization is unlikely to grant an exception, and we'll probably have to do some redesign to get around the issue. But we still have a general concern about handling compilation errors with AutoIt 3.3.14.2 when building from Bash scripts.

Any additional suggestions would be appreciated.


When the going gets tough, the tough start coding.

Share this post


Link to post
Share on other sites
1 hour ago, tremolux66 said:

Apparently /ErrorStdOut wasn't implemented yet in AutoIt 3.3.14.2,

You are right! It was implemented in AutoIt3.exe, not aut2exe.exe.

Sorry about that.

Jos

Share this post


Link to post
Share on other sites

@Jos Sounds like an enhancement request to me. :)

Correction: I misspoke when I said we'd run 3.3.14.5 compilation tests in a relaxed anti-malware environment. While we weren't looking, a removable media and file protection module was installed on the test computer, and its policies included prohibiting self-extraction. So we in fact demonstrated more conclusively that changing AutoIt versions didn't improve anything, and now our "problem script" consistently fails to compile. Not sure whether to be happy or sad. :blink:

It will be interesting to see how this issue gets resolved. Maybe we'll be lucky.


When the going gets tough, the tough start coding.

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

  • Similar Content

    • By jchd
      Here's a trivial exemple of some simple computation going awry.
      The implementation language is mostly irrelevant (here, AutoIt) as you'd get about the same thing with C and the vast majority of languages.
      SillyFP.au3
    • By Prabuddha
      my .au3 file runs without any problems with SciTE editor. But when I compiled it to exe file, it is give me errors. below you can see my code and error with my AutoIt versions.
      How can I solve this?
      SciTE Version 4.1.0 autoIt script file name = gitversion.au3 complide exe file name = gitversion.exe  
      #RequireAdmin ;set mouse coordinates relative to window size by giving value 0 for second parameter AutoItSetOption('MouseCoordMode', 0) $System32Dir=@SystemDir $SystemDriveLetter=Stringleft($System32Dir,1) ;$SystemDriveLetter example is 'C' drive in the hard-disk (windows installed drive letter) ;msgbox(0,0,'System drive letter is: ' & $SystemDriveLetter) DirRemove($SystemDriveLetter & ":\GitTest\Git",1) DirCreate($SystemDriveLetter & ":\GitTest") Local $gitHere = $SystemDriveLetter & ":\GitTest" DirCreate($SystemDriveLetter & ":\JasperDesti") ; Disable user input from the mouse and keyboard. BlockInput(True) SplashTextOn("Installing","Please Wait..!", 200, 50) Run("cmd.exe") WinWaitActive("Administrator: " & $SystemDriveLetter & ":\WINDOWS\SYSTEM32\cmd.exe", "") $gitBashPath = $SystemDriveLetter & ":\Program Files\Git\bin\sh.exe" ControlSend("Administrator: " & $SystemDriveLetter & ":\WINDOWS\SYSTEM32\cmd.exe", "", "", '"' & $gitBashPath & '" --login') ;ControlSend("Administrator: C:\WINDOWS\SYSTEM32\cmd.exe", "", "", '"C:\Program Files\Git\bin\sh.exe" --login') Send("{Enter}") ControlSend("Administrator: " & $SystemDriveLetter & ":\WINDOWS\SYSTEM32\cmd.exe", "", "", 'cd ' & $gitHere) Send("{Enter}") ControlSend("Administrator: " & $SystemDriveLetter & ":\WINDOWS\SYSTEM32\cmd.exe", "", "", 'git clone https://mcmedisoft.visualstudio.com/Git/_git/Git && echo "cloned"') Send("{Enter}") Local $gitSignIn = WinWait('Sign in to your account', '', 6) $lowerSysDriveLetter = StringLower($SystemDriveLetter) ;$gitSignIn = 0 means sign in window didn't apper because user already signed in to bash. $gitSignIn != 0 means user hasn't signed in and should type passwords. If $gitSignIn == 0 Then ControlSend("MINGW64:/" & $lowerSysDriveLetter & "/GitTest", "", "", "cd Git") Send("{Enter}") ControlSend("MINGW64:/" & $lowerSysDriveLetter & "/GitTest", "", "", "git checkout WorkerEvent") Send("{Enter}") ControlSend("MINGW64:/" & $lowerSysDriveLetter & "/GitTest", "", "", "exit") Send("{Enter}") ControlSend("MINGW64:/" & $lowerSysDriveLetter & "/GitTest", "", "", "exit") Send("{Enter}") Else WinActivate('Sign in to your account') ;MouseClick('primary', 126, 338, 2, 0) SplashOff() ; Enable user input from the mouse and keyboard. BlockInput(False) WinWaitClose('Sign in to your account') ; Disable user input from the mouse and keyboard. BlockInput(True) SplashTextOn("Installing","Please Wait..!", 200, 50) ControlSend("MINGW64:/" & $lowerSysDriveLetter & "/GitTest", "", "", "cd Git") Send("{Enter}") ControlSend("MINGW64:/" & $lowerSysDriveLetter & "/GitTest", "", "", "git checkout WorkerEvent") Send("{Enter}") ControlSend("MINGW64:/" & $lowerSysDriveLetter & "/GitTest", "", "", "exit") Send("{Enter}") ControlSend("MINGW64:/" & $lowerSysDriveLetter & "/GitTest", "", "", "exit") Send("{Enter}") ; Enable user input from the mouse and keyboard. BlockInput(False) WinWaitActive("Administrator: " & $SystemDriveLetter & ":\WINDOWS\SYSTEM32\cmd.exe", "", 4) ControlSend("Administrator: " & $SystemDriveLetter & ":\WINDOWS\SYSTEM32\cmd.exe", "", "", 'exit') Send("{Enter}") EndIf ; Enable user input from the mouse and keyboard. BlockInput(False) WinWaitClose("MINGW64:/" & $lowerSysDriveLetter & "/GitTest") DirRemove($SystemDriveLetter & ":\JasperDesti\tomcat", 1) ;$tomcatCreateSuccess = DirCreate($SystemDriveLetter & ":\JasperDesti\tomcat") ;DirCreate($SystemDriveLetter & ":\JasperDesti\tomcat") $sSourceFolder = $SystemDriveLetter & ":\GitTest\Git" $sDestFolder = $SystemDriveLetter & ":\JasperDesti\tomcat" _CopyFolder($sSourceFolder,$sDestFolder) SplashTextOn("Completed","Done..!", 200, 50) Sleep(1000) SplashOff ; _CopyFolder funchtion is use to copy a folder while displaying a progress bar func _CopyFolder($sSourceFolder,$sDestFolder) dirremove($sDestFolder,1) local $iSourceSize = DirGetSize($sSourceFolder), $iDestSize local $pid = Run(@AutoItExe & ' /AutoIt3ExecuteLine "DirCopy(''' & $sSourceFolder & ''', ''' & $sDestFolder & ''')"') ProgressOn("Copy Progress", "Please Wait...") Do $iDestSize = dirgetsize($sDestFolder) local $ipct = int(($iDestSize/$iSourceSize)*100) ProgressSet($ipct,$ipct & ' percent complete') sleep(20) Until not ProcessExists($pid) ProgressOff() endfunc  

    • By Dreamfire
      Hi,
      Since today, exe's are being flagged as having a trojan by Windows Defender (Fuery.B!cl)
      Version:  3.3.14.3 - SciTE Version 3.7.3



       

    • By Barrtrek
      I get the "Unable to add resources" error related to AppData\Local\AutoIt v3\Aut2Exe when compiling with a large FileInstall of a 1.5GB file.  Is there a size limit I need to be aware of?  I've also disabled or removed Trend from three different machines and had the same results.  I've had issues like this in the past but have compiled after the Aut2Exe folder was excluded in AV.  That doesn't seem to be the problem this time around.  If I comment out the FileInstall the script compiles successfully.
    • By Imperial
      I keep getting Error: Opening the File Everytime I try to convert the .au3 to .exe
      http://i.imgur.com/p0Z8JPH.png
×
×
  • Create New...