Includes - Entsprechungen und Handhabung mit alten AutoIt Versionen

    • Offizieller Beitrag

    Wie invasiv wäre eine Installation ? Verbiegt sie einem das ganze System, oder kann man sie problemlos wieder entfernen ?

    Ist nicht sehr invasiv. Ich empfehle die Installation mittels scoop, darüber lässt sich auch prima deinstallieren.

    Ich füge dich zur Konversation hinzu.

  • Ist nicht sehr invasiv. Ich empfehle die Installation mittels scoop, darüber lässt sich auch prima deinstallieren. Ich füge dich zur Konversation hinzu.

    Vielen Dank :thumbup:

    P.S. Professor Bernd : Sorry, falls wir Deinen Thread etwas missbrauchen, aber Dich interessiert es ja offenbar auch ;)

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Könnt ihr mal alle Nachteile für a3x Dateien nennen?

    Dazu müsste man erstmal wissen, was denn a3x-Dateien überhaupt sind. Zitat aus der Hilfe:

    Zitat

    Compiling Scripts with Aut2Exe
    Note: Scripts can be compiled with .a3x extension. They should be run with AutoIt.exe filename.a3x. The .a3x contains the script itself with all referred #include plus the FileInstall files. This format allows you to distribute smaller files as they don't include the AutoIt3.exe in each compiled script. You still need to have it accessible on the target machine but just AutoIt3.exe.

    Kurz zusammengefasst: Eine a3x-Datei enthält das Originalskript, alle Inludes und alle per FileInstall eingebundenen Dateien. Im Gegensatz zur exe-Datei fehlt hier aber der AutoIt-Interpreter (AutoIt3.exe). Der Interpreter muss also auf dem Zielsystem vorhanden sein.


    An Nachteilen bei deinem Anwendungsfall fällt mir da gerade ein... Nehmen wir an, Du schreibst Deine ganzen Skripte für den Editor unter AutoIt 3.3.14.5. Du erzeugst dann die entsprechende a3x-Datei, von den Includes her passt alles. Jetzt führe ich diese a3x-Datei auf meinem System aus - dummerweise habe ich AutoIt nach der Erstinstallation aber nie aktualisiert, also läuft bei mir alles mit 3.3.8.1. Du benutzt jetzt in deinem Skript aber Sprachfeatures (ich meine keine UDFs!), die aus neueren AutoIt-Versionen stammen. Eine kleine Auswahl dieser Fallstricke: Ternärer Operator, leere Arrays, Direktzugriff auf Indizes von Array-Ausdrücken (sowas: StringSplit(...)[0]), das Keyword Null, ObjGet mit Instanz-Angabe... Und dann gibt es Bruch. Denn meine "alte" AutoIt3.exe kann dein neues a3x-Skript nicht ausführen. Vermutlich würde das ganze einfach mit einem Syntax Error abschmieren.


    Ich schließe mich der Meinung der anderen an dieser Stelle an... Unterstütz einfach nur die aktuellste AutoIt-Version. Es gibt (fast*) keinen Grund, eine alte Version von AutoIt zu verwenden. Im Gegenteil: Solche Sachen wie der haarsträubende Hex-Fehler sind ein guter Grund, immer die aktuellste Variante zu nehmen.


    * PluginOpen war schon cool...

  • Als gravierender Nachteil habe ich gerade entdeckt, dass a3x Dateien keine Versionsnummer unterstützen. Da in meinem Projekt die Mindesversionsnr's jedoch wichtig sind, hätte ich keine Möglichkeit, die VerNums zu prüfen. Somit schließt sich der Kreis und endet wo er angefangen hat:

    Ich schließe mich der Meinung der anderen an dieser Stelle an... Unterstütz einfach nur die aktuellste AutoIt-Version. Es gibt (fast*) keinen Grund, eine alte Version von AutoIt zu verwenden. Im Gegenteil: Solche Sachen wie der haarsträubende Hex-Fehler sind ein guter Grund, immer die aktuellste Variante zu nehmen.

    chesstiger Die Grundinformationen waren mir bekannt. Die Details sind sehr interessant, die du aufzählst. Vielen Dank dafür! :thumbup:


    Bernd.

    Wenn jemand sagt: "Das geht nicht!" Denke daran: Das sind seine Grenzen, nicht deine.

  • Denn meine "alte" AutoIt3.exe kann dein neues a3x-Skript nicht ausführen. Vermutlich würde das ganze einfach mit einem Syntax Error abschmieren.

    Das Nachfolgende schreibe ich unter Vorbehalt (habe ich also noch nicht geprüft):

    Um eine .a3x-Datei auszuführen reicht, soweit ich weiß, jede selbst kompilierte .exe aus, da diese ja auch den Interpreter enthält. Man könnte sich also eine Launcher-3.3.14.5.exe erstellen und damit seine Skripte starten. Zwar hätte man dann immer noch EINE .exe , die in den Virenscannern hängenbleiben könnte, aber nicht mehr 10, 20 oder 100, die sich zudem laufend ändern.

    Weiterhin ist unklar, ob nicht auch die AutoIt3.exe aus dem Standard selbst früher oder später auf die Abschussliste gerät.


    Sobald ich mein derzeitiges Projekt abgeschlossen habe, wollte ich mich eh mal näher mit der .a3x Thematik befassen - danach weiß ich ggf. mehr darüber ;).


    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Nur um es zu erwähnen, es gibt auch noch die Holzhammer-Methode.


    Gerade habe ich entdeckt, dass die Lizenz von AutoIt3 offiziell das unbegrenzte Verteilen von AutoIt3 erlaubt, ganz oder in Teilen. Das heißt, ich könnte die AutoIt3.exe und die benötigten aktuellen Includes in das Improvement Kit aufnehmen. Somit gäbe es keine Kompatibilitäts-Probleme mehr, selbst mit uralten AutoIt Versionen. Möglicherweise könnte man dann PSPad4AutoIt3 ansich sogar ohne AutoIt benutzen (eingeschränkt). Bliebe noch zu klären, wie sich die SciTE AutoIt3Wrapper.au3 nutzen lässt. Dann könnte PSPad4AutoIt3 komplett portable gemacht werden.


    ... In der Zwischenzeit hat Musashi ganz ähnliches geschrieben. Interessant, interessant! :/ ...


    Ein paar Details zu meiner Idee, wie ich mir das vorstellen würde. Es gibt 2 Bereiche.


    Zum einen PSPad4AutoIt3 mit Improvement Kit, AutoIt3.exe und nur die Includes, die zur Ausführung meiner Scripte benötigt werden.


    Zum anderen den User Bereich. Damit ist gemeint, der User kann eine beliebige AutoIt Version installieren, mit oder ohne SciTE.


    Da PSPad4AutoIt3 dann eine eigene AutoIt3 "Umgebung" mitbringen würde, wären beide Bereiche unabhängig von einander.


    Ob das funktioniert, ist eine andere Sache. Stopfersteine gibts natürlich auch, z. B. wie man die Syntax-Definitionen für CallTips, Autovervollständigung und Syntax-Highlighting handhabt, entsprechend der jeweiligen AutoIt Version des Users. Usw. Ist halt nur mal eine Idee. 8)


    Bernd.

    Wenn jemand sagt: "Das geht nicht!" Denke daran: Das sind seine Grenzen, nicht deine.