Au3Wrapper: RunAfter zur Manipulation des aktuellen Skriptes

  • Ich verwende in meinem SciTE ja ein Lua-Skript um den TimeStamp automatisch beim Speichern einzutragen.

    Der TimeStamp hat eine durch Property festgelegte Zeile, in der er eingefügt wird.

    Wenn ich jedoch ein Skript kompiliere, grätscht der Au3Wrapper ungefragt dazwischen, indem er

    a) seine Direktiven im Skript hinterlegt (was ich nicht will und erst nach dem Kompilieren passiert und somit nicht erforderlich ist)

    b) Diese Einträge werden einfach an den Skriptanfang gesetzt. Der User hat da andere Vorstellungen? - Ja leck mich, als Wrapper bin ich Chef!

    Dadurch wandert natürlich der TimeStamp im Skript unter die Zeilen mit den Wrappereinträgen. Ich kann natürlich nach dem Kompilieren einfach nochmal Speichern und dann wird das mit meinem Lua-Skript korrigiert - viel schöner wäre es doch, wenn man das mittels AutoIt automatisiert. Der Wrapper kann per INI gesteuert werden und enthält einen Schlüssel zum Ausführen danach:

    Ini
    [Other]
    Run_After=

    Nun habe ich ein Skript geschrieben, das mittels SciTE-Interface den Pfad der zum Kompilieren in SciTE geöffneten Datei holt, diese Datei in ein Array einliest und im Array die Zeilen an die gewollte Position verschiebt. Das funktioniert auch soweit, wie gewollt.

    Jedoch das Rückschreiben in die Datei ist wirkungslos. Ich hatte eigentlich erwartet, dass "Run_After" auch tatsächlich erst nach Beendigung des Wrappers läuft. Aber dem scheint nicht so zu sein. Die letzte Aktion des Wrappers ist, wenn ich dessen Code jetzt richtig verstanden habe, dass die Änderungen, die er intern an einer Tmp-Datei durchführt, im Skript landen und der Inhalt anschließend in den Editor eingefügt wird. Somit sind meine zwischenzeitlichen Änderungen am Skript wieder futsch.

    Die Bezeichnung "Run_After" ist somit m.M.n. irreführend und sollte heißen: "Run_After_Compile", ich hatte es nämlich als "Run_After_Wrapper" interpretiert.

    Falls ihr aber eine Idee habt, wie man NACH Beendigung des Wrappers automatisch ein Skript startet - lasst hören.

    Hier übrigens das Skript: