PSPad4AutoIt3 Projekt DE

  • GermanEnglish (Translated with http://www.DeepL.com/Translator)
    Hallo.

    Diese Projekt ist mein Versuch, PSPad als Editor/IDE für AutoIt3 fit zu machen. In anderen Threads habe ich schon darüber geschrieben, und es gab auch schon einige gute Tipps.

    "PSPad4AutoIt3 Projekt" beinhaltet derzeit als Improvement Kit:

    - Einstellungsdateien für PSPad.

    - 1 VBScript "AutoIt3-Script-1.vbs" für PSPad-Erweiterungen. Bisher nur 1 Funktion: "ClearLogWin".

    - AutoIt Highlighter- und Definitions-Dateien aus einer AutoIt-Standard-Installation ("C:\Program Files (x86)\AutoIt3\Extras\Editors\PSPad\")
    . Die Highlighter-Datei ist leicht angepasst, um die bestmögliche Funktionalität in PSPad zu erreichen.
    Hello.

    This project is my attempt to make PSPad fit as editor/IDE for AutoIt3. I've written about it in other threads, and there have been some good tips.

    "PSPad4AutoIt3 Project" currently includes as Improvement Kit:

    - Settings files for PSPad.

    - 1 VBScript "AutoIt3-Script-1.vbs" for PSPad extensions. So far only 1 function: "ClearLogWin".

    - AutoIt highlighter and definition files from an AutoIt standard installation ("C:\Program Files (x86)\AutoIt3\Extras\Editors\PSPad\")
    . The highlighter file is slightly customized to achieve the best possible functionality in PSPad.



    NICHT enthalten sind: / NOT included:


    - AutoIt -- Download-Seite EN -- Direkter Download Standard+SciTE(light)

    - SciTE4AutoIt3 -- Download-Seite EN -- Direkter Download

    - PSPad -- Download-Seite EN -- Direkter Download Portable

    NEU 2019-10-25

    - PSPad developer version 5.0.2 (339) -- Download-Seite EN -- Direkter Download Portable or Mirror


    Hier soll nun der derzeitige Stand der Entwicklung zur Verfügung gestellt werden. Es ist ein sehr, sehr früher Stand, es gibt wahrscheinlich mehr Dinge, die nicht funktionieren, als welche, die funktionieren. 8o Deshalb seid nachsichtig und erwartet nicht zu viel.

    Zumindest für den Anfang habe ich das Projekt als "portable" angelegt, um Wechselwirkungen mit anderen Dingen zu minimieren. Zudem hilft das bei der Fehlersuche.
    The current state of development is to be made available here. It's a very, very early state, there are probably more things that don't work than there are things that work. 8o Therefore be indulgent and don't expect too much.

    At least for a start, I've made the project portable to minimize interactions with other things. It also helps with troubleshooting.



    EinrichtungSetup
    1.AutoIt installieren - Wichtig: Standard-Pfad benutzen!
    Install AutoIt - Important: Use default path!
    2.SciTE4AutoIt3 installieren. - Wichtig: Standard-Pfad benutzen!*

    (*Weil manche meiner PSPad Funktionen auf die hervorragenden Scripts von SciTE zugreifen, z. B. AutoIt3Wrapper.)
    Install SciTE4AutoIt3. - Important: Use default path!*

    (*Because some of my PSPad functions access the excellent scripts of SciTE, e.g. AutoIt3Wrapper.)
    3.PSPad portable entpacken - Wichtig: In ein Verzeichnis mit Schreibrechten kopieren!

    PSPad developer version entpacken und alle Dateien und Ordner in das PSPad-Verzeichnis kopieren. Vorhandene Dateien überschreiben.
    Unzip PSPad portable - Important: Copy to a directory with write access!

    Unzip PSPad developer version and copy all files and folders into the PSPad directory. Overwrite existing files.
    4.Improvement Kit entpacken (Zip mit meinen Dateien) und einfach alle Ordner und Dateien aus dem Datums-Ordner in den PSPad-Ordner kopieren. Vorhandene Dateien überschreiben. Der Download befindet sich ganz unten am Ende in dieses Postings.Extract the improvement kit (zip with my files) and simply copy all folders and files from the date folder into the PSPad folder. Overwrite existing files. The download can be found at the bottom of this posting.


    Datums-Ordner / date folder




    Wichtig! Alle oben genannten Schritte durchführen, BEVOR PSPad das erste Mal gestartet wird!

    Dadurch wird sichergestellt, dass PSPad im portablen Modus läuft, und sich nicht z. B. im User-Verzeichnis einnistet.
    Important! Perform all the above steps BEFORE PSPad is started for the first time!

    This will ensure that PSPad is running in portable mode and does not settle in the user directory, for example.


    Hauptansicht einstellen / Set main view




    Shortcuts


    Die Shortcuts habe ich denen von SciTE nachempfunden. Leider funktionieren noch keine für die Tools im "favorite tab"! Man sieht die "Fav-Tools", wenn man auf den Sternchen-Button klickt (siehe Screenshot oben). Alle "Fav-Tools" können per Doppelklick gestartet werden.

    Der PSPad-Entwickler Jan Fiala hat angeboten, Shortcuts für die Fav-Tools einzubauen. Bis dahin habe ich als Workaround für den wahrscheinlich am häufigsten benötigten Shortcut (F5) das Fav-Tool "au3 - Run" quasi doppelt besetzt, indem ich es zusätzlich in den au3-Kompiler-Einstellungen eingefügt habe. (Menü "Settings" \ "Highlighters Settings" -> Tab "Compiler") Dort kann man einen Shortcut einstellen (F5). Das fliegt natürlich raus, wenn die Fav-Tools eigene Shortcuts haben.
    I have modeled the shortcuts on those of SciTE. Unfortunately none work for the tools in the "favorite tab" yet! You can see the "Fav-Tools" by clicking on the star button (see screenshot above). All "Fav-Tools" can be started with a double click.

    PSPad developer Jan Fiala has offered to include shortcuts for the fav tools. Until then, as a workaround for the probably most frequently used shortcut (F5), I quasi doubled the Fav tool "au3 - Run" by adding it to the au3 compiler settings. (Menu "Settings" \ "Highlighters Settings" -> Tab "Compiler") There you can set a shortcut (F5). Of course, this is out of the question if the fav tools have their own shortcuts.



    Dateien

    32 Mal editiert, zuletzt von Professor Bernd () aus folgendem Grund: Echt mal ein dickes Lob für die Foren-Software! Was hat die mir schon den Allerwertesten gerettet, wenn ich dachte, die ganze Arbeit wäre weg.

  • Danke für das Lob! :)


    Changelog habe ich noch nie gemacht. Aber es ist ja bald Weihachten, da wünsche ich mir einfach einen, der mir dabei hilft. 🎅 Wie man sehen kann, heißt der Thread "PSPad4AutoIt3 Projekt DE". Falls jemand beim Übersetzen ins Englische hilft, gibts vielleicht ein "PSPad4AutoIt3 Projekt EN".


    Hat die "Installation" denn bei dir geklappt? Funktionieren die Shortcuts und die Fav-Tools? Kommt der Compiler-Output an?


    Und wenn die Events für PSPad kommen, dann gehts richtig los.

    Da hab ich ein wenig Bammel davor <X und freue mich gleichzeitig darauf! :party:


    So, da wäre schon was fürs Changelog: Ich habe eine Winzigkeit geändert und hochgeladen. Lediglich 2 Shortcuts getauscht: ClipShow=Shift+Space und ClipRun=Alt+Space.

  • Changelog habe ich noch nie gemacht.

    Einfach nur die neuen Features der neuen Version posten, so dass man sehen kann was sich verändert hat. Ein Beispiel wie es aussehen kann findest du hier.


    Hat die "Installation" denn bei dir geklappt? Funktionieren die Shortcuts und die Fav-Tools? Kommt der Compiler-Output an?

    Ja, alles super. Der Syntaxhighlighter ist nur ein wenig von den Block-Kommentaren #cs #ce irritiert. Die werden als Präprozessoren geparst obwohl das so ja nicht ganz richtig ist.

  • Apropos: Habe ich die Antwort vom PSPad Entwickler richtig verstanden, und er diesen block comment im autoIt highlighter hinzufügen wird?

    Zitat von PsPad

    I am afraid you are not able to set it, cause PSPad doesn't know such block comment.

    Autoit3 is provides as user highlighter definition and there is set of block highlight available. I have to add this block comment into user highlighter.

    Daraus geht für mich nicht eindeutig hervor, dass er das auch machen wird, zumal er Deine Folgefrage (vom 20. Sept,2019) :

    did you say that you will implement the AutoIt Block Comment in the user highlighter?

    bisher nicht beantwortet hat.


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


  • Ich würde an deiner Stelle vielleicht den englischen Beitrag in einen Spoiler setzen, denn beide Sprachen gleichzeitig braucht man nicht.

    Eine kleine Nachricht oben im Thread "English version here" oder so, und fertig, aber es ist ja dein Thread.



    Was ist denn der aktuelle Entwicklungsstand? Welche Features willst du noch implementieren?

    Arbeitest du eigentlich schon an den Eventsachen? Du könntest die ja vorerst als Menupunkt einbinden, und wenn die Events stehen schreibst du das einfach um, dann hast du den Code bis dahin schon mal fertig.

  • englischen Beitrag in einen Spoiler ... kleine Nachricht oben im Thread "English version here" oder so, und fertig

    Hmm, :/ daran hatte ich auch schon gedacht. Wenn es gegen keine Forenregeln verstößt, lasse ich im Moment mal in der Tabellenform.


    Was ist denn der aktuelle Entwicklungsstand? Welche Features willst du noch implementieren?

    Arbeitest du eigentlich schon an den Eventsachen?

    Ich arbeite derzeit "Tag und Nacht" an dem Projekt. (Nee, ganz so schlimm ist es nicht, aber ich bin fleißig dran.) ;)


    Leider sind in dieser "Findungsphase" meine Entscheidungen die größten Stolpersteine. Ich habe mit VBScript-Lösungen viel Zeit verschwendet, um zu erkennen, was ich schon vorher wusste, nämlich dass damit einfach nicht weiterzukommen ist. VBScript ist einfach zu "unmächtig" und müßig. Nun wende ich mich dem Ansatz zu, externe Programme zu nutzen, um Features zu implementieren. Dabei ist noch die Frage, ob AutoIt dazu geeingnet ist, weil Antivirensoftware eine Vorliebe fürs Löschen von AutoIt-Exes hat.


    Entwicklungstand


    Es geht gerade sehr langsam voran. Mein Stil ist es, möglichst saubere, stabile Arbeit abzugeben. Ohne die geeigneten Events und Funktionen in PSPad muss ich improvisieren und externe Lösungen suchen. Dabei ist z. B. bei SendKeys u. ä. darauf zu achten, das richtige Fenster/Control anzusprechen. - Ich arbeite daran.


    Ein weiteres Problem sind die AutoIt-Aufrufe für "Run", "Compile", usw. Die Arbeiten von vielen Usern für Routinen in SciTE helfen dabei enorm! (Respekt!). So z. B. in diesem Fall der AutoIt3Wrapper. Leider sind da große Mysterien über die Handhabung. Um jetzt nicht zu sehr ins Details zu gehen, sage ich einfach, es ist mir noch nicht gelungen Command Line Parameter zu finden, mit denen zuerst ein Fehler-Check durchgeführt wird, und falls Fehler, dann NICHT ausführen/kompilieren. (INIs mit Direktiven habe ich nicht zum Funktionieren gebracht.) Falls sich da nichts findet, werde ich versuchen, es selbst umzusetzen.


    Aktuelle geplante Features


    Ich versuche im Posting #1 einen Spoiler dafür einzurichten.

  • VBScript ist einfach zu "unmächtig" und müßig. Nun wende ich mich dem Ansatz zu, externe Programme zu nutzen, um Features zu implementieren. Dabei ist noch die Frage, ob AutoIt dazu geeignet ist, weil Antivirensoftware eine Vorliebe fürs Löschen von AutoIt-Exes hat

    Eine mögliche Option für Dich wäre es, .a3x Dateien zu verwenden, da diese von Virenscannern i.d.R. weniger betroffen sind.

    Eine .a3x Datei ist gewissermaßen eine "verschlüsselte/kompilierte" Version der .au3 Datei (a3x = Tokenised AutoIt3 code file).

    Bzgl. Sicherheit gelten die selben Regeln wie bei einer .exe (also keine Passwörter ablegen etc.)


    Im .au3 Skript folgende Direktive angeben : #AutoIt3Wrapper_Outfile_type=a3x

    oder "Compile with Options".


    Einige Punkte müssen beachtet werden, z.B. :

    • Auf dem Rechner muss eine passende AutoIt Installation vorhanden sein, da die .a3x (anders als die 'kompilierte' .exe) keinen AutoIt-Interpreter einbindet - ist daher auch kleiner..
    • Die Einstellung #AutoIt3Wrapper_UseX64 hat keine Relevanz !
      Ein Doppelklick auf z.B. Demo.a3x verwendet die Interpretervariante (32-Bit/64-Bit), die in der Registry mit dieser Extension assoziiert ist. Bei Run/RunWait muss die passende Interpreter-Exe angegeben werden.
    • #AutoIt3Wrapper_UseUpx=N setzen, d.h. ausschalten (eh besser bzgl. Virenscannern)

    (weitere Punkte bei Bedarf, falls diese Variante für Dich in Frage kommen sollte)


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


  • Vielen Dank für den Tipp! :)


    Aufgrund eines Tipps von BugFix nutze ich im Moment die Möglichkeit, in meinem Improvement Kit nur au3 Dateien als "externe Programme" zu benutzen. Das heißt, z. B. in den VBScripts erfolgt ein Aufruf der AutoIt3.exe, der ich die jeweilige au3 übergebe. Bei meinen bisherigen Tests hat das funktioniert und Windows-Defender hat sie nicht angerührt. Dadurch sind alle Codes einsehbar und das Improvement Kit ist klein.


    Dennoch freue ich mich über deinen Tipp. Hätte a3x Vorteile demgegenüber?

  • Aufgrund eines Tipps von BugFix nutze ich im Moment die Möglichkeit, in meinem Improvement Kit nur au3 Dateien als "externe Programme" zu benutzen.

    [...]

    Dennoch freue ich mich über deinen Tipp. Hätte a3x Vorteile demgegenüber?

    (Vorab : ich habe .a3x Dateien bisher nur gelegentlich verwendet, bin also nicht der Experte;))


    Was die Virenscannerproblematik angeht dürfte es wohl keinen gravierenden Unterschied machen, ob Du Dateien als .a3x oder .au3 beifügst (solange es eben keine .exe ist).


    Punkte, die mir gefallen :

    • Doppelklick auf eine .a3x Datei verhält sich analog zu einer .exe
    • .a3x Dateien können, auch analog zu einer .exe, mittels Dateiname aus einer .cmd (Batchdatei) oder einem anderen Skript aufgerufen werden, also ohne AutoIt3.exe + Übergabe der .au3 Datei.
    • Alle benötigten UDF's sind in der .a3x 'included'. Das ist ggf. interessant bei externen, also Nicht-Standard-UDF's. Man muss diese nicht mitliefern (bzw. vergessen es zu tun).
    • Der Quellcode wird nicht offengelegt (falls man dies aus verschiedenen Gründen möchte).

    Diese Beschreibung ist unvollständig ! Ob das jetzt Vorteile sind, muss jeder selbst entscheiden :P.


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


  • Ich vermute mal, dass erfahrene Entwickler besser organisiert sind, aber bei mir muss ich erst noch den richtigen Weg finden. Die geplanten Features habe ich umrissen, recherchiert und angefangen. Da ergab sich eins zum anderen, und mal habe ich Code-Snippets und Tipps für das eine gefunden, mal für das andere. So sind mittlerweile mehrere angefangen, und eins habe ich gestern fertig gestellt:


    Die Erweiterung der Suchbegriff-Erfassung, damit auch Wörter erkannt werden, wenn der Cursor direkt dahinter steht.


    Das war gestern. Heute hat Jan Fiala die neueste Developer Version 5.0.2 (339) veröffentlicht. Darin ist dieses Feature nun enthalten. Ist das nicht :ironie:?

    Ich freue mich sehr, dass Jan Fiala meinen Feature-Request erfüllt hat! Ebenso wie: Scripting - added variables for getVarValue(): %File% (file name without extension), %Ext% (file extension). Das kommt diesem Projekt zugute, weil damit in der VBScirpt-Schnittstelle 2 weitere Variablen hinzukommen.


    Edit:


    Fast vergessen: Im Posting #1 habe ich diese Infos im Spoiler "Aktuell geplante Features" und bei den Downloads die neueste PSPad Developer Version hinzugefügt. Den entsprechenden Punkt im Abschnitt "Einrichtung" habe ich angepasst.

  • Eine mögliche Option für Dich wäre es, .a3x Dateien zu verwenden, da diese von Virenscannern i.d.R. weniger betroffen sind.

    Ich wollte nur mal berichten, dass die ax3-Dateien vor kurzem zu einer wichtigen Überlegung geworden sind. Da ist noch ein wenig Denkarbeit erforderlich. Sie haben auch jeden Fall ihre Vorzüge. - Sinnvolle Anwendung wäre das Verbergen des Quell-Codes. Wie sieht es denn eigentlich aus mit decompilieren?

  • In einem Satz: Google findet Dir in kürzester Zeit entsprechende Decompiler. Also nix mit "Quell-Code verbergen" :(

  • Sinnvolle Anwendung wäre das Verbergen des Quell-Codes. Wie sieht es denn eigentlich aus mit decompilieren?

    Grundsätzlich ist das Dekompilieren gemäß der Nutzungsbedingungen von AutoIt unzulässig, aber das interessiert in betreffenden Kreisen natürlich niemanden.


    Wie water gerade schrieb : Also nix mit "Quell-Code verbergen"


    Ich zitiere mich mal selbst ;):

    Eine .a3x Datei ist gewissermaßen eine "verschlüsselte/kompilierte" Version der .au3 Datei (a3x = Tokenised AutoIt3 code file).

    Bzgl. Sicherheit gelten die selben Regeln wie bei einer .exe (also keine Passwörter ablegen etc.)

    Meines Wissens wird eine .au3 beim Einbinden in die .exe mit dem selben Verfahren 'verschlüsselt' (genauer 'tokenized'), wie eine alleinstehende .a3x-Datei.

    Etwas sicherer sind .a3x gegenüber .au3-Dateien daher schon, zumindest liegen sie für den Durchschnittsuser nicht auf dem Präsentierteller und er kann nicht darin herumdoktern ;).


    Es spricht zudem ja nichts dagegen, die .au3-Quellen für 'Selbstkompilierer' in einem separaten \Source-Verzeichnis mitzuliefern.


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