Weil ich sooo schwer von Begriff war, hier noch einmal das "schöne Lied":
Test Eins
Local $sInFile = "X:\Zielskript.au3"
Local $Aut2Exe = StringReplace(@AutoItExe, "AutoIt3.exe", "Aut2Exe\Aut2exe.exe")
; "Aut2exe.exe / In < infile.au3 >[/out < outfile.exe >][/icon < iconfile.ico >][/comp 0 - 4][/nopack][/x64][/bin < binfile.bin >] "
Local $sCmd = StringFormat("%s /in %s", $Aut2Exe, $sInFile)
Run($sCmd)
Ergebnis:
Keinerlei Eintragungen. Eigentlich eine gute Grundlage. Das gleiche leere Eigenschaften-Fenster entsteht, wenn in der Zielskript.au3 beliebige #AutoIt3Wrapper-Direktiven angegeben sind. Damit komme ich also nicht weiter. Sind dafür etwa nur die #pragma-Direktiven zuständig/nutzbar, wenn ich es auf diese Weise kompiliere?
Test Zwei
Local $sInFile = "X:\Zielskript.au3"
Local $Aut2Exe = StringReplace(@AutoItExe, "AutoIt3.exe", "Aut2Exe\Aut2exe.exe")
#cs
Aut2Exe.exe
/in <infile.au3>
[/out <outfile.exe>]
[/icon <iconfile.ico>]
[/comp 0-4]
[/ignoredirectives]
[/nopack]
[/pack]
[/ansi]
[/unicode]
[/x86]
[/x64]
[/console]
[/gui]
[/execlevel <asinvoker | highestavailable | requireadministrator | none>]
[/compatibility <vista | win7 | win8>]
[/comments <>]
[/companyname <>]
[/filedescription <>]
[/internalname <>]
[/legalcopyright <>]
[/legaltrademarks <>]
[/originalfilename <>]
[/productname <>]
[/fileversion <fixednum[,num]>]
[/productversion <fixednum[,num]>]
[/bin <binfile.bin>]
#ce
Local $sCmd = StringFormat('%s /in %s /icon Symbol.ico /comp 4 /ignoredirectives /nopack /unicode /x86 /console /execlevel asinvoker /comments "Lange Programmbeschreibung." /filedescription "Programmbeschreibung" /originalfilename Zielskript.exe /legalcopyright "©2019 by fee" /fileversion 0.8.0.0', $Aut2Exe, $sInFile)
Run($sCmd)
Alles anzeigen
Ergebnis:
Das sieht schon fast so aus, wie ich will, nur die Sprache ist noch Englisch und eigene Freiformateinträge fehlen noch. Also stimmt dies – mit obigen Schaltern zumindest bei mir unter Windows XP SP3 – nicht:
Wenn man selbst kompiliert ist das Feld "Produktversion" enthalten. Das wird beim Kompilieren über die "Aut2exe.exe" erstellt.
Wie der Eigenschaften-ScreenShot von @BugFix's Testergebnis zeigt, unter Windows 7 (?) hingegen schon. Vielleicht zeigen Windows-Versionen nach XP solche "Standard"-Versionsinformationen-Einträge wie Produktversion anders als XP immer an, unabhängig von deren Existenz in einer EXE-Datei?
Gibt es wenigstens für die Sprache einen Schalter für Aut2Exe, von dem ich nichts weiß bzw. den ich übersehen habe? Ist der Schalter /ignoredirectives nur für die #pragma-Direktiven gedacht?
Nebenbei: Der Schalter /compatibility führt bei der Aut2Exe, unabhängig vom Zusatz vista, win7 oder win8, zum Abbruch der Schalter-Verarbeitung und es öffnet sich die Aut2Exe-GUI, als hätte ich keinen einzigen Schalter angegeben.
Test Drei
Local $sInFile = "X:\Zielskript.au3"
Local $Aut2Exe = StringReplace(@AutoItExe, "AutoIt3.exe", "Aut2Exe\Aut2exe.exe")
Local $sCmd = StringFormat('%s /in %s', $Aut2Exe, $sInFile)
Run($sCmd)
Kompilator.au3
und die Direktiven in
#pragma compile(Out, Zielskript.exe)
#pragma compile(Icon, Symbol.ico)
#pragma compile(ExecLevel, asInvoker)
#pragma compile(UPX, False)
#pragma compile(AutoItExecuteAllowed, False)
#pragma compile(Console, True)
#pragma compile(Compression, 9)
#pragma compile(x64, False)
#pragma compile(InputBoxRes, False)
#pragma compile(Comments, Lange Programmbeschreibung.)
#pragma compile(FileDescription, Programmbeschreibung)
#pragma compile(FileVersion, 0.8.0.0)
#pragma compile(LegalCopyright, ©2019 by fee)
#pragma compile(OriginalFilename, Zielskript.exe)
Alles anzeigen
führen zum gleichen Eigenschaften-Ergebnis wie Test Zwei:
Die verfügbaren #pragma-Direktiven bieten auch keine Sprachumstellung für die Versionsinformationen an, vergrößern aber das kompilierte Skript (EXE) mal eben um etwa 30 KiB! Warum das denn?
Gruß, fee
Edit: In Test Zwei Frage unter BugFix-Zitat geändert.