Installation mehrerer SciTE-Versionen

    • Offizieller Beitrag

    Ich würde gern neben der Installation von SciTE4AutoIt auch die jeweils aktuelle SciTE-Version installieren. Es gibt jedoch ein Problem, für das ich noch keine Lösung habe.

    Egal welche SciTE-Variante: "SciTEUser.properties" wird immer aus C:\Users\USER\AppData\Local geladen. Egal in welchem Unterordner sich die Datei befindet. Das bedeutet, dass z.B. auch das "normale" SciTE sofort nach seiner Installation auf die im Unterordner ..\AppData\Local\AutoIt v3\SciTE vorhandene SciTEUser.properties zugreift.

    Meine Überlegungen waren jetzt

    1. ein Menü zum Aufruf der jeweiligen SciTE-Variante, beim Start wird die gewünschte SciTEUser.properties aktiviert (durch Umbenennen)

    Nachteil: Aufrufe müssen ausschliesslich über das Menü erfolgen

    2. Überwachung der SciTEUser.properties auf Zugriff (die Datei ist dann eine Leerdatei), Abfragen welches SciTE Zugriff haben will und Weiterleitung zur zugehörigen SciTEUser.properties

    Da fehlt mir momentan aber noch der Ansatz zur Realisierung

    Hat jemand von euch schon mal vergleichbares gemacht?


    P.S.

    Ich habe in meiner VM mal die SciTE4Autoit Version 4.2.0_2019-09-03 installiert. Wenn ich mich recht erinnere, sollte doch in der aktuellen Version durch die Option create.hidden.console=1 das Aufpoppen des CMD-Fensters unterdrückt werden. Funktioniert das bei jemandem? - Bei mir tut sich da nichts.

  • Hab grad mal rumprobiert und Doku gelesen: Es gibt eine Windows-Systemvariable mit Namen SCITE_USERHOME.

    Wenn du die im selben Kontext vor dem Aufruf der SciTE-Executable überschreibst, solltest du eine andere SciTEUser.properties erzwingen können. Beispielsweise so:

    Code
    ECHO OFF
    ECHO %SCITE_USERHOME%
    SET SCITE_USERHOME=%APPDATA%\..\Local\SciTE_ohne_AutoIt
    ECHO %SCITE_USERHOME%
    "C:\Program Files (x86)\AutoIt3\SciTE\SciTE.exe"
    • Offizieller Beitrag

    Ach stimmt, da wird ja (leider) eine Umgebungsvariable gesetzt. Und die zuletzt installierte Version prüft: Variable gesetzt - OK, alles gut - dann nehmen wir den Pfad. So ein Mist.

    Ich trauere noch immer den Zeiten nach, als sämtliche Settings im Programmordner selbst abgelegt wurden.

    OK, mal sehen ob das was Brauchbares wird. Ansonsten bleibt nur der Umweg über zweiten Windows-User oder VM.

  • Egal welche SciTE-Variante: "SciTEUser.properties" wird immer aus C:\Users\USER\AppData\Local geladen. Egal in welchem Unterordner sich die Datei befindet.

    Ich denke mal, dies hilft dir weiter:

    SciTE4AutoIt3.chm

    Properties file

    Much of SciTE's behaviour can be changed by editing the properties files.

    There are four properties files used:

    • Local properties file called "SciTE.properties" which may be present in the same directory as the file being edited.
    • Directory properties file called "SciTEDirectory.properties" which may be present in the same or in a parent directory as the file being edited.
    • User properties file called "SciTEUser.properties" on Windows and ".SciTEUser.properties" on GTK+.
    • Global properties file called "SciTEGlobal.properties".

    Settings in the local properties file override those in the directory properties file which overrides those in the user properties file which override those in the global properties files. Environment variables are also available as properties and these are overridden by an explicit setting in one of the properties files.

    The directory properties file can be used as project options file

    • Offizieller Beitrag

    Bitnugger

    Das nützt leider nur bei Projekten etwas, da die Hierarchie nur eine Ordnerebene erlaubt. Ausschließlich die SciTEUser.properties sind allgemein gültig.

    Alternativ müsste ich dann in jedem Skriptordner eine SciTEDirectory.properties erstellen mit dem Inhalt der SciTEUser.properties. Obwohl, das könnte man ja ohne Verwendung von Speicherplatz per Link regeln.

    • Offizieller Beitrag

    [EDIT] Kommando zurück:

    Autoit kann ja gar nicht Systemvariablen setzen. Es wird das gewählte SciTE gestartet, aber wenn ich eine Abfrage der Umgebungsvariable mache, bleibt die gleich.

    Muss wohl auf CMD-Ebene ausgeführt werden - mal testen.

    [EDIT 2]

    Umgebungsvariablen scheinen ein Ding für sich zu sein:

    Der AutoIt-Befehl EnvSet beeinflusst sie nicht, damit kann man nur eigene (Laufzeit-Umgebungsvariablen) erstellen.

    Ausführen in der CMD: set VAR=Neuer_Wert ist erfolgreich.

    Ausführen in AutoIt: Run(@ComSpec & " /c " & 'set VAR=Neuer_Wert', '', @SW_HIDE) wird ignoriert.

    Muss ich dafür echt eine Batch Datei verwenden? :Face:


    Ich habe es jetzt mit einem Launcher gelöst:

    Verknüpfung auf dem Screen zu:

    - C:\Launcher\SciTELaunch.exe "4.4.6" - startet SciTE v4.4.6

    - C:\Launcher\SciTELaunch.exe - startet SciTE4AutoIt

    Ini-Datei im Launcherordner:

    Code: SciTELaunch.ini
    [Scite_UserHome]
    AutoIt=%LOCALAPPDATA%\AutoIt v3\SciTE
    4.4.6=C:\Scite446
    
    [Run]
    AutoIt=C:\Program Files (x86)\AutoIt3\SciTE\SciTE.exe
    4.4.6=C:\Scite446\SciTE.exe

    Die andere SciTE-Version habe ich bewusst nicht im Programmordner installiert, damit ich die dortigen Property-Dateien auch bearbeiten kann.