SciTE Starter - Verwalten mehrerer SciTE Versionen

  • Ich hatte ja bereits hier erste Schritte in diesem Thema gemacht, das war aber noch unausgegoren.


    So gehts:

    - Die Standardinstallation von SciTE4AutoIt wird (ist) normal über das Installationsprogramm installiert.

    - Vom Installationsprogramm wurde die Umgebungsvariable: SciTE_USERHOME = C:\Users\<USER>\AppData\Local\AutoIt v3\SciTE gesetzt.

    - Dort ist standardmäßig die SciTEUser.properties gespeichert.

    - Für andere SciTE-Versionen darf nicht der Installer benutzt werden, sondern die gepackte Installation muss in einem Pfad entpackt werden, auf den der USER volle Schreibrechte hat.

    - Sowohl die SciTEUser.properties als auch die SciTEGlobal.properties sind dann im selben Ordner zu erstellen, wie die SciTE.exe


    Beim ersten Aufruf des SciTE-Starters fragt das Programm nach dem Pfad für SciTE4AutoIt und einem entsprechenden Alias für die Anzeige in der Auflistung. Anschließend können weitere SciTE-Versionen ausgewählt werden. (Falls kein Alias eingetragen oder die Alias-Abfrage abgebrochen wird, verwendet das Programm den Namen der SciTE.exe und deren Versionsnummer.) Alles wird in einer INI im Pfad des SciTE-Starters eingetragen.


    Es können per Kontextmenü der Liste jederzeit Einträge hinzugefügt oder gelöscht werden. Bitte alle Einträge ausschließlich über das Programm vornehmen, der erste Eintrag muss zwingend die Standardinstallation von SciTE4AutoIt sein. - Und auch nicht auf die Idee kommen, die Liste sortiert anzuzeigen! Grund ist derselbe, an Index 0 muss SciTE4AutoIt sein.


    Bei der Auswahl einer anderen als der Standardversion, wird SciTE_USERHOME zurückgesetzt und SciTE_HOME mit dem Pfad der gewählten Version belegt. Somit sucht SciTE beim Start dort nach der SciTEUser.properties.

    Wenn ich SciTE4AutoIt über die Installationsverknüpfung starte, kann ich somit auch parallel eine andere SciTE-Version öffnen.


    Wie ihr im Code sehen könnt, speichere ich das Fenster-Handle der gestarteten SciTE-Version in einer Temp-Datei. Das ist für die Auswahl hier unerheblich und dient nur meiner weiteren Verwendung, damit ich von anderen Skripten sofort Zugriff mit dem richtigen Handle habe.