tantrim Posted December 11, 2022 Posted December 11, 2022 (edited) I receive the error Error copying source to destination file when I try and run the exe I have created with the code below. Is it possible to self compile a .au3 file into a .exe from within the same file via command line with /in and /out? This is the code I'm currently using. The file is named test.au3 and I'm trying to compile the same file, test.au3 local $cmdCommand = "Aut2exe.exe /in " & @ScriptDir & "\test.au3 /out " & @ScriptDir & "\tt.exe"; /icon " & @ScriptDir & "\robo.ico"; /x64" ConsoleWrite($cmdCommand & @CRLF) RunWait(@ComSpec & " /k " & $cmdCommand, "", @SW_SHOW) I found wrapit from @Melba23. Is this what it requires to do such a task? I'm asking because it seems like it's quite involved and maybe I should just avoid trying to self compile an exe lol.My goal is to put the created .exe within my windows startup folder so that my program launches on startup. I want to also automatically update that created .exe in the startup folder whenever I run my .au3 file manually when working on it. If there is a simpler way to do this please let me know. Edited December 11, 2022 by tantrim
Developers Jos Posted December 11, 2022 Developers Posted December 11, 2022 Try putting the source and target in double quotes to be able to handle spaces in them: local $cmdCommand = 'Aut2exe.exe /in "' & @ScriptDir & '\test.au3" /out "' & @ScriptDir & '\tt.exe"' I assume aut2exe.exe is in the path or current directory. SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
Zedna Posted December 11, 2022 Posted December 11, 2022 (edited) Just note: Compiled EXE file can't be used (without external Aut2Exe.exe) for compiling another scripts, it can be used for other scripts only as runtime (like/instead AutoIt3.exe). Edited December 11, 2022 by Zedna Resources UDF ResourcesEx UDF AutoIt Forum Search
tantrim Posted December 11, 2022 Author Posted December 11, 2022 (edited) 10 hours ago, Jos said: Try putting the source and target in double quotes to be able to handle spaces in them: local $cmdCommand = 'Aut2exe.exe /in "' & @ScriptDir & '\test.au3" /out "' & @ScriptDir & '\tt.exe"' I assume aut2exe.exe is in the path or current directory. aut2exe.exe is in the environment path and working in cmd from any directory. This appears to make no difference. I also have no spaces in the @ScriptDir path 2 hours ago, Zedna said: Just note: Compiled EXE file can't be used (without external Aut2Exe.exe) for compiling another scripts, it can be used for other scripts only as runtime (like/instead AutoIt3.exe). I'm not sure I understand what you're saying. I'm able to take the output from line 2 of my code above and paste that manually into cmd which creates a working .exe. The issue I seem to have is that I can't create a working .exe when that command line is kicked off by my script. I think it's because the .au3 is in use so the compiler can't copy it. The script above can create a working .exe of another .au3 file without issue only IF I start that .exe after my current .au3 file is done running and not currently executing. Edited December 11, 2022 by tantrim
Developers Jos Posted December 11, 2022 Developers Posted December 11, 2022 Just checked and this version works for me: local $cmdCommand = '""C:\Program Files (x86)\AutoIt3\aut2exe\Aut2exe.exe" /in "' & @ScriptDir & '\test.au3" /out "' & @ScriptDir & '\tt.exe""' SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
tantrim Posted December 13, 2022 Author Posted December 13, 2022 On 12/11/2022 at 2:27 PM, Jos said: Just checked and this version works for me: local $cmdCommand = '""C:\Program Files (x86)\AutoIt3\aut2exe\Aut2exe.exe" /in "' & @ScriptDir & '\test.au3" /out "' & @ScriptDir & '\tt.exe""' When I run the command line it still throws an error for me. However, I did find a solution. Before I share, I want to ask a question. How does @ScriptDir function? Lets say I have a script C:\Users\Coding\Dropbox\Coding\Software\DesktopAutomation\WindowsShortcutstest.au3 that contains @ScriptDir but gets compiled with Aut2exe.exe and /out to C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\tt.exe. does that @ScriptDir change to the ProgramData path when that exe C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\tt.exe is ran? From my tests that appears to be the case.
Developers Jos Posted December 13, 2022 Developers Posted December 13, 2022 (edited) Did you exclude your script and target directory from an AntiVirus you are running.... and please don't post these flashing running gifs as it is impossible to read what it says.! Just post the relevant info likeyour code, errors etc! Edited December 13, 2022 by Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
Solution tantrim Posted December 13, 2022 Author Solution Posted December 13, 2022 (edited) The solution It's a very round about way of trying to accomplish my quote below On 12/11/2022 at 1:59 AM, tantrim said: My goal is to put the created .exe within my windows startup folder so that my program launches on startup. I want to also automatically update that created .exe in the startup folder whenever I run my .au3 file manually when working on it. So what I did was manually create WindowsShortcutsStartupLauncher.au3 file using FileWrite and then immediately compile that file into my @StartupCommonDir. This function lives in my main script and compiles automatically into my common startup directory whenever ran. The purpose of this is so I don't have to manually place the WindowsShortcutsStartupLauncher.exe in the startup directory of every new PC I run this on. ;WindowsShortcuts.au3 Func CreateStartupEXE() ;This creates the StartupLauncher.au3 with a static path for the current computer. ;After creating StartupLauncher.au3, it compiles it and places it in the Shared Startup folder - C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp ;This exe will recompile the latest code on startup and then launch that code so you always have the latest on every startup. Local $hFileOpen = FileOpen("WindowsShortcutsStartupLauncher.au3", $FO_OVERWRITE) local $cmdCommand = "Aut2exe.exe /in " & SurroundWithQuotes(@ScriptDir & "\WindowsShortcuts.au3") & " /out " & SurroundWithQuotes(@ScriptDir & "\WindowsShortcuts.exe") & " /icon " & SurroundWithQuotes(@ScriptDir & "\smiley.ico"); /x64" FileWriteLine($hFileOpen, "local $cmdCommand = '" & $cmdCommand & "'") FileWriteLine($hFileOpen, 'ConsoleWrite($cmdCommand & @CRLF)') FileWriteLine($hFileOpen, 'RunWait(@ComSpec & " /c " & $cmdCommand, "", @SW_HIDE)') FileWriteLine($hFileOpen, 'Sleep(100)') FileWriteLine($hFileOpen, 'Run(' & SurroundWithQuotes(@ScriptDir & "\WindowsShortcuts.exe") & ')') Sleep(100) ;compile WindowsShortcutsStartupLauncher.au3 and place in common startup directory $cmdCommand = "Aut2exe.exe /in " & SurroundWithQuotes(@ScriptDir & "\WindowsShortcutsStartupLauncher.au3") & " /out " & SurroundWithQuotes(@StartupCommonDir & "\WindowsShortcutsStartupLauncher.exe") & " /icon " & SurroundWithQuotes(@ScriptDir & "\smiley.ico"); /x64" RunWait(@ComSpec & " /c " & $cmdCommand, "", @SW_HIDE) EndFunc this then creates this file below with static paths. ;WindowsShortcutsStartupLauncher.au3 local $cmdCommand = 'Aut2exe.exe /in "C:\Users\Coding\Dropbox\Coding\Software\DesktopAutomation\WindowsShortcuts\WindowsShortcuts.au3" /out "C:\Users\Coding\Dropbox\Coding\Software\DesktopAutomation\WindowsShortcuts\WindowsShortcuts.exe" /icon "C:\Users\Coding\Dropbox\Coding\Software\DesktopAutomation\WindowsShortcuts\smiley.ico"' ConsoleWrite($cmdCommand & @CRLF) RunWait(@ComSpec & " /c " & $cmdCommand, "", @SW_HIDE) Sleep(100) Run("C:\Users\Coding\Dropbox\Coding\Software\DesktopAutomation\WindowsShortcuts\WindowsShortcuts.exe") and now on startup, WindowsShortcutsStartupLauncher.exe in my startup folder will run which recompiles WindowsShortcuts.au3 and then runs that new .exe with my latest code. Edited December 13, 2022 by tantrim
tantrim Posted December 13, 2022 Author Posted December 13, 2022 (edited) 11 minutes ago, Jos said: Did you exclude your script and target directory from an AntiVirus you are running.... and please don't post these flashing running gifs as it is impossible to read what it says.! Just post the relevant info likeyour code, errors etc! In Windows Security I've excluded the paths, .au3, and .exe. The Error: Error copying source to destination file still occurs. I don't run any antivirus to my knowledge and have also attempted turning off Real-Time protection in Windows Security. I've done all of these things at the same time. I've also killed all dropbox processes as well. Edited December 13, 2022 by tantrim
rcmaehl Posted December 13, 2022 Posted December 13, 2022 I'd recommend using AutoitWrapper.au3 included in SciTE4AutoIt for Continuous Integration like you're wanting do. I remember trying to do similar with Au32exe and having issues that using AutoItWrapper.au3 resolved. Plus you can just copy the command straight out of SciTE. My UDFs are generally for me. If they aren't updated for a while, it means I'm not using them myself. As soon as I start using them again, they'll get updated.My Projects WhyNotWin11Cisco Finesse, Github, IRC UDF, WindowEx UDF
Skysnake Posted December 14, 2022 Posted December 14, 2022 Break up into smaller steps 1. compile 2. use batch file to copy Skysnake Why is the snake in the sky?
tantrim Posted December 15, 2022 Author Posted December 15, 2022 On 12/13/2022 at 3:08 PM, rcmaehl said: I'd recommend using AutoitWrapper.au3 included in SciTE4AutoIt for Continuous Integration like you're wanting do. I remember trying to do similar with Au32exe and having issues that using AutoItWrapper.au3 resolved. Plus you can just copy the command straight out of SciTE. I looked into this and can't find any information on AutoitWrapper.au3 implementation. Do you have any links you can share?
Zedna Posted December 16, 2022 Posted December 16, 2022 https://www.autoitscript.com/site/autoit-script-editor/downloads/ https://www.autoitscript.com/cgi-bin/getfile.pl?../autoit3/scite/download/SciTE4AutoIt3_Portable.zip -> \AutoIt3Wrapper\AutoIt3Wrapper.au3 Resources UDF ResourcesEx UDF AutoIt Forum Search
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now