Altes Autoit script breaking changes

  • Ich habe da alten Code in dem ich folgenden Befehl verwende: _StringEncrypt

    das geht noch mit z.B. Version 3.3.6.1. Mit neuen Versionen nicht mehr. Ich habe keine Lust den Source anzupassen. Immer wenn ich Kleinigkeiten an dem Code ändern muss, deinstaliere ich meine aktuelle Autoit Version, instaliere die 3.3.6.1 ändere alles, und dann wieder rückwärts....

    Kann man nicht einfach die alten Funktionen nicht einfach in die Neue Autoit Version "einbetten" indem man die Funktion wieder zu String.au3 hinzufügt. Oder gibt es sonst eine einfachere Vorgehensweise?


    Danke

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Frei nach Albert Einstein)

    Einmal editiert, zuletzt von Peter S. Taler (10. Februar 2025 um 20:06)

  • Kopiere alle Funktionen aus 3.3.6.1 die Du brauchst in eine neue UDF mit neuem Namen und lege sie im AutoIt Include-Verzeichnis ab.
    #include diese UDF in Deinem alten Skript und fertig.

  • Du meinst:

    alte_udfs.au3 als Datei, da die alten Funktionen rein

    Im Script:

    #include alte_udfs

    Verstehe ich das richtig?

    Danke

    Peter

    --------------------

    Funktioniert tadellos --> Danke

    closed

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Frei nach Albert Einstein)

    Einmal editiert, zuletzt von Peter S. Taler (10. Februar 2025 um 20:46)

  • Verstehe ich das richtig?

    Ja !

    Peter S. Taler :

    Edit : Es kommt natürlich darauf an, welche Abhängigkeiten die veraltete(n) Funktion(en) ggf. nach sich ziehen.

    Poste bitte mal den Code der _StringEncrypt aus der Version 3.3.6.1

    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."

  • Funktioniert, gibt scheinbar keine weiteren Abhängigkeiten


    Nochmal

    Herzlichen

    Dank

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Frei nach Albert Einstein)

  • Bei nochmaliger Überlegung finde ich die von Dir beschriebene Vorgangsweise natürlich schon sehr zeitaufwändig und ineffizient.
    Was machst Du, wenn der Funktionsname gleich geblieben ist, aber z.B. optionale Parameter verpflichtend wurden oder die Reihenfolge der Parameter geändert wurde?
    Oder - wie im Falle der Word und Excel UDF - ein komplettes Rewrite erfolgte?

    Der Changelog von AutoIt gibt Dir genaue Hinweise über die vorgenommenen Änderungen und über die Script-Breaking Changes.
    Da AutoIt ja keine Gehirnchirurgie ist, sollten die Änderungen von Version zu Version ja problemlos umsetzbar sein.
    Aber die Anpassung von 3.3.6.1 (16th April, 2010) zur aktuellen Version gibt einen Haufen Arbeit.

  • Naja, das ist ein altes, relativ komplexes Werk, an das ich nicht "ran" wollte zum umschreiben. Läuft zeitgesteuert seit Jahren vor sich hin. Den Code verstehe ich heute nur noch eingeschränkt (damals mit zu wenig Hintergrundbeschreibung) .

    Nach 2 Jahren musste ich, mal wieder,eine Kleinigkeit ändern, steht leider nicht in der *.ini.... und da ging das Theater mal wieder von vorne los. Und da ich ungern sinnlos arbeite habe ich halt mal gefragt. Und die Antwort hat auch geholfen!

    Normalerweise passe ich den Code schon an, das ist einer von 2 Fällen wo ich es nicht gemacht habe... aber mit Deinem Tip funktioniert das in beiden Fällen super....

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Frei nach Albert Einstein)

  • Laut Doku kann man ja zwei Versionen von AutoIt parallel betreiben, einmal eine Stable und zusätzlich eine Beta. Ich habe im Forum (DE/EN) mehrfach gelesen, dass man den Beta-Bereich auch zum Betrieb einer veralteten Stable-Version "missbrauchen" kann. Probiert habe ich es noch nicht (da nicht erforderlich).

    Dies wäre ggf. eine Option, falls das Kopieren einzelner Funktionen/Konstanten nicht ausreicht.

    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."

  • Danke für die Tips,

    im vorliegenden Fall. hatt mir die Idee mit einer "privaten UDF " weitergeholfen. Gefällt mir auch deswegen weil mir die "alte _StringEncrypt" wieit besser liegt als der Nachfolger... Im übrigen ist das mit der privaten UDF's ev. auch ein Ansatz für die "Auslagerung" eigener Functionen.... . Habe da zwei Datumsfunktionen, an die z.B. denke

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Frei nach Albert Einstein)

  • Du könnstest die portable-Version von AutoIT verwenden. Für jede Version machst Du Dir einfach einen Ordner und gut ist es.....

    Das lässt sich auch super mit dem Thema von letztens kombinieren.
    VSC unterstützt Profile.
    Wenn man also VSC nimmt kann man ergo unendlich viele AutoIt-Versionen parallel betreiben.
    Wie?

    • Die jeweiligen AutoIt-Versionen als portable Versionen in ihre jeweiligen Ordner "installieren"
    • Im VSC in den Einstellungen zur AutoIt-Erweiterung die Pfade zur aktuellsten AutoIt-Version hin eintragen.
    • Nun in den Profileinstellungen das aktuelle Profil duplizieren und nur die Erweiterungseinstellungen als Profilinhalt nehmen.
    • Das neue Profil aktivieren und in den Einstellungen zur AutoIt-Erweiterung die Pfade zu der anderen AutoIt-Version hin ändern.
    • Das macht man für jede AutoIt-Version die man verwenden möchte.

    Auf die Art kann man mit jeweils 2 Klicks zwischen beliebig vielen AutoIt-Versionen hin und her switchen wie man lustig ist.

  • Im VSC in den Einstellungen zur AutoIt-Erweiterung die Pfade zur aktuellsten AutoIt-Version hin eintragen.

    ..Gibt es eine Möglichkeit, dies über ein Skript zu automatisieren, das die Version auswählt, ohne etwas eingeben zu müssen? ( dies ist eine Anfrage für ein solches Skript ? )

  • Naja es gibt das Konzept der Workspaces in VSC.
    Man kann dort für seine Projekte jeweils eine Workspace-Datei anlegen, welche für jedes Projekt ganz spezifische Einstellungen hinterlegt hat.
    Auch das Profil kann man dort angeben.
    Wenn man dies nutzt kann man Projektabhängig ohne weiteres zutun festlegen mit welchen Einstellungen dieses laufen soll.
    Ich persönlich nutze die Workspaces aber bislang nicht und bin da nur bedingt auskunftsfähig.

    Die Frage wäre auch was mit "Skript" gemeint ist. Ein AutoIt-Skript oder ein Skript in VSC?
    Zumindest kann man VSC per Kommandozeilenparameter mit einem bestimmten Profil starten.
    Das wäre ein Ansatzpunkt zum Automatisieren.
    Aber das schöne an den Profilen ist ja eigentlich das man einfach mittendrin ohne neustarten hin und her switchen kann.

  • Racer

    Entschuldige die doofe Frage... wie komme ich an portable Autoit Versionen?

    Instalieren und das Verzeichnis "wegkopieren", danach deinstalieren ... usw.. oder gibts die Portablen Versionen extera?


    LG

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Frei nach Albert Einstein)

  • Danke

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Frei nach Albert Einstein)

  • Also dafür, dass ich an einem 15 Jahren altem Autoit Script alle 5 Jahre mal was ändern muss ist mir mancher Aufwand tatsächlich zu groß. Die Idee mit der eigenen Include funktioniert, und das mit dem Autoitportable ist schon erledigt. Einfacher geht es nicht, und ich muss mich nicht umgewöhnen... danke für die schlanken Tips


    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Frei nach Albert Einstein)