Danke, ich weiß es leider auch net aber danke vllt findet sich ja noch wer.
Beiträge von Tweak90
-
-
Habe Fileinstall mal mit absoluten Pfaden versucht, macht keinen unterschied
Hier mal die au3 datei:
https://drive.google.com/folderview?id=0B-WkNGnWsbTfUU9wY2JMUHpLUm8&usp=sharingHoffe das mit dem externen Link ist OK. Dies ist das komplette Script, da oben die Formatierung ja nicht ganz so glücklich ist.
-
Also, im Scite bekomme ich folgende Ausgabe:
Code
Alles anzeigen>"D:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /prod /in "D:\SetupScript\setup.au3" +>18:19:06 Starting AutoIt3Wrapper v.2.1.4.0 SciTE v.3.3.7.0 ; Keyboard:00000407 OS:WIN_81/ CPU:X64 OS:X64 Environment(Language:0407 Keyboard:00000407 OS:WIN_81/ CPU:X64 OS:X64) >Running AU3Check (3.3.10.2) from:D:\Program Files (x86)\AutoIt3 +>18:19:07 AU3Check ended.rc:0 >Running:(3.3.10.2):D:\Program Files (x86)\AutoIt3\aut2exe\aut2exe_x64.exe /in "D:\SetupScript\setup.au3" /out "C:\Users\Stephan\AppData\Local\AutoIt v3\Aut2exe\~AU3wnvvowg.exe" /nopack /icon "D:\SetupScript\install3.ico" /comp 0 /x86 +>18:20:12 Aut2exe.exe ended.C:\Users\Stephan\AppData\Local\AutoIt v3\Aut2exe\~AU3wnvvowg.exe. rc:0 >18:20:12 Performing the Program Resource Update steps: ...>Updating Program Version information. ...>Setting Program ExecutionLevel Manifest information to requireAdministrator ...>Updating Program Manifest information. >18:20:12 Program Resource updating finished successfully. +>18:20:12 Created program:D:\SetupScript\tst\Multisetupx86.exe >Exit code: 0 Time: 66.066
Die ausgegebene Datei ist dabei 826KB groß. Aksi immernoch fehlerhaft. Nutze ich vllt irgendwelche Funktionen, welche unter x86 nicht lauffähig sind?
-
Ist die 32bit-datei wirklich 350 kb groß? weil dann wäre sie ja größer als die 64bit-dateiSeit wann sind 300 mehr als 300.000 ??? Ist ja kein komma war nur n tausender Trennzeichen
Hab versucht den Quellcode oben mal zu formatieren, speichert es leider immer wieder so
EDIT:
Weiß ja nicht, ob das zugrunde liegende System relevant ist:
Windows 8.1 Pro x64Autoit habe ich gestern in der letzten Stable heruntergeladen.
-
Entschuldigt, ich konnte gestern leider keine Änderungen vornehmen, weil ich darauf warten musste, dass der Beitrag freigeschaltet wird.
Also ich bin jetzt so weit:
Wenn ich die Compilerausgabe auf 64bit stelle, dann passt alles und die Datei ist am Ende 333.181KB groß und sie funktioniert auch.Wenn ich allerdings versuche, den ganzen Kram für 32bit zu kompilieren, bekomme ich eine nur 350 KB große Datei, welche natürlich nicht funktioniert.
Das Problem:
Ich muss täglich mehrmals Softwarepakete dieser Art sowohl auf 32 als auch auf 64 bit Systemen installieren und hätte daher gern auch eine 32bit Variante.In der Konsole rufe ich:
D:\SetupScript>"d:\Program Files (x86)\AutoIt3\Aut2Exe\Aut2exe.exe" /in Setup.au3 /out tst/setup.exe /icon install3.ico /comp 0 /nopack /x86 /gui
auf, wie gesagt, mit /x64 läuft es einwandfrei.Wo bekomme ich die Compilerausgabe her? Wenn ich es so Ausführe sehe ich in der Konsole leider nix
-
Guten Tag erstmal,
ich bin momentan dabei einige Setups mit AutoIT zu automatisieren, stoße aber an ein ganz blödes Problem.Hier erstmal mein Code:
[autoit]
*Edit: Wegen ungünstiger Formatierung hier das Script als au3 file: https://drive.google.com/folderview?id=0B-WkNGnWsbTfUU9wY2JMUHpLUm8&usp=sharing#Region ;**** Directives created by AutoIt3Wrapper_GUI ****#AutoIt3Wrapper_Icon=install3.ico#AutoIt3Wrapper_Outfile=tst\Multisetupx86.exe#AutoIt3Wrapper_Compression=0#AutoIt3Wrapper_UseX64=n#AutoIt3Wrapper_Res_LegalCopyright=***#AutoIt3Wrapper_Res_Language=1031#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****#include <Date.au3>
[/autoit][autoit][/autoit][autoit]
$tempDirName = 'temp'; Erstellen eines Ordners "temp" für die Setupdateien während der InstallationDirCreate($tempDirName)
[/autoit][autoit][/autoit][autoit]ProgressOn("Multisetup", "Setup wird ausgeführt", "Bitte warten...")
[/autoit][autoit][/autoit][autoit]
; Funktionen, welche während des Setups genutzt werden#region funcs
#region funcInstallSilent
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; InstallSilentExe wird Aufgerufen um das die gewünschte Datei zu installieren, wenn diese ;; sich via Parameter unattended installieren lässt. ;; ; Als Parameter muss zuerst der Dateiname und dann alle Aufrufparameter mitgegeben werden ;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
Func InstallSilentExe($name, $params) ConsoleWrite(GetTime() & ': InstallSilentEXE wurde aufgerufen für ' & $name & @CRLF)
;~ Die in das Tempverzeichnis gelegte Datei wird mit parametern aufgerufen ShellExecuteWait($name, $params, $tempDirName) ConsoleWrite(GetTime() & ': Setup wurde aufgerufen für ' & $name & @CRLF)
;~ Die Datei wird nachdem der Prozess beendet wurde gelöscht FileDelete($tempDirName & '\' & $name) ConsoleWrite(GetTime() & ': Datei wurde gelöscht ' & $name & @CRLF & @CRLF)EndFunc ;==>InstallSilentExe;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; InstallSilentMSI wird Aufgerufen um das die gewünschte Datei zu installieren, wenn diese ;; sich via Parameter unattended installieren lässt. ;; ;; Als Parameter muss der Dateiname mitgegeben werden ;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
[/autoit][autoit][/autoit][autoit]
Func InstallSilentMSI($name) ConsoleWrite(GetTime() & ': InstallSilentMSI wurde aufgerufen für ' & $name & @CRLF)
;~ Die in das Tempverzeichnis gelegte Datei wird mit parametern aufgerufen ShellExecuteWait("msiexec.exe", '/i "' & @ScriptDir & '\' & $tempDirName & '\' & $name & '"' & ' /quiet') ConsoleWrite(GetTime() & ': Setup wurde aufgerufen für ' & $name & @CRLF);~ Die Datei wird nachdem der Prozess beendet wurde gelöscht FileDelete($tempDirName & '\' & $name) ConsoleWrite(GetTime() & ': Datei wurde gelöscht ' & $name & @CRLF & @CRLF)EndFunc ;==>InstallSilentMSI
[/autoit][autoit][/autoit][autoit]
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; InstallSilentZipExe wenn beim Setup mehrere Dateien benötigt werden. Diese können dann als ;; zip Archiv mitgegeben werden. ;; ;; Da AutoIt keine ZIP unterstützung mitbringt muss 7zip installiert sein ;; ;; Als Parameter sollte muss zuerst der Archivname, dann der Name der auszuführenden Datei ;; und dann die Parameter mitgegeben werden ;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
Func InstallSilentZipExe($archivname, $name, $params) ConsoleWrite(GetTime() & ': InstallSilentZipExe wurde aufgerufen für ' & $name & @CRLF)
;~ Das mitgegebene Archiv wird entpackt ShellExecuteWait('unzip.exe', $archivname, '.\temp') ConsoleWrite(GetTime() & ': Archiv wurde entpackt ' & $archivname & @CRLF)
;~ Die in das Tempverzeichnis entpackte Setup-Datei wird mit parametern aufgerufen ShellExecuteWait($name, $params, $tempDirName) ConsoleWrite(GetTime() & ': Setup wurde aufgerufen für ' & $name & @CRLF) ConsoleRead()
;~ Es wird auf die Beendung des Prozesses gewartet ProcessWaitClose($name) ConsoleWrite(GetTime() & ': Prozess wurde abgeschlossen von ' & $name & @CRLF)
;~ Die Datei wird nachdem der Prozess beendet wurde gelöscht FileDelete($tempDirName & '\*.*') ConsoleWrite(GetTime() & ': Datei wurde gelöscht ' & $name & @CRLF & @CRLF)
EndFunc ;==>InstallSilentZipExe
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; GetTime wird aufgerufen um die aktuelle Zeit inkl. Millisekunden zu erhalten ;; ;; Rückgabe im Format hh:mm:s,f ;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
Func GetTime() Return (@HOUR & ':' & @MIN & ':' & @SEC & "," & @MSEC)EndFunc ;==>GetTime
#endregion funcInstallSilent
#endregion funcs
#region Setups;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; Firefox Aktuell in Version 26.0 ;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;FileInstall('Firefox.msi', $tempDirName & '\Firefox.msi')ProgressSet(18, 'Firefox wird installiert')
InstallSilentMSI('Firefox.msi')
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; Thunderbird Aktuell in Version 24.2.0 ;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;FileInstall('Thunderbird-Setup-24.2.0.exe', $tempDirName & '\Thunderbird-Setup-24.2.0.exe')ProgressSet(36, 'Thunderbird wird installiert')InstallSilentExe('Thunderbird-Setup-24.2.0.exe', '-ms');~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; Adobe Reader Aktuell in Version 11.0.0.6 ;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
[/autoit][autoit][/autoit][autoit]
FileInstall('AdbeRdr11006_de_DE.exe', $tempDirName & '\AdbeRdr11006_de_DE.exe')ProgressSet(54, 'Adobe Reader wird installiert')InstallSilentExe('AdbeRdr11006_de_DE.exe', '/sAll /rps')
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; LibreOffice Aktuell in Version 4.1.4;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;FileInstall('LibreOffice_4.1.4_Win_x86.msi', $tempDirName & '\LibreOffice_4.1.4_Win_x86.msi')
ProgressSet(72, 'Libre Office wird installiert')InstallSilentMSI('LibreOffice_4.1.4_Win_x86.msi');~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; VLC Aktuell in Version 11.0.0.6 ;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;FileInstall('vlc-2.1.2-win32.exe', $tempDirName & '\vlc-2.1.2-win32.exe')ProgressSet(90, 'VLC wird installiert')InstallSilentExe('vlc-2.1.2-win32.exe', '/L="1031" /S')
[/autoit][autoit][/autoit][autoit]
#endregion Setups;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;; zum schluss wird der Ordner "temp" gelöscht. ;; 1 = Alle Ordner und unterordner werden gelöscht ;; 0 = Wenn der ordner nicht leer ist bleibt er erhalten ;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
[/autoit]
ProgressSet(99, 'Temporäre Dateien werden gelöscht')DirRemove($tempDirName, 1)ProgressOff()if( MsgBox( 36, 'Setup Abgeschlossen' , 'Das Setup wurde erfolgreich abgeschlossen, es wird empfohlen den Computer neu zu starten.' & @CRLF & @CRLF & ' Jetzt neu starten?') = 6) Then Shutdown( 6 )Das Problem:
Ich kann das Script ausführen, die Setups laufen dann auch alle durch. (wichtig : Adminrechte) Aber wenn ich es Compiliere, erhalte ich eine nur knapp 850kB große executable, welche natürlich nicht alle Setups beinhaltet und auch nicht ausführbar ist.Ob das Script jetzt an jeder Stelle unbedingt nach best practice gelößt ist sei mal dahingestellt, es funktioniert auf jeden Fall Wer ne Idee warum der Compiler nicht will?