Ermitteln, ob in PSPad ein "(" geschrieben wurde

  • Mein CallTipViewer zeigt in PSPad, wie der Name schon sagt, CallTips an.

    Ein CallTip kann angezeigt werden, wenn man den Shortcut Shift+Ctrl+Space drückt. - Hinzukommen soll nun, dass ein CallTip auch automatisch angezeigt wird, wenn der User in PSPad eine öffnende runde Klammer "(" schreibt.


    In anderen Threads habe ich den Ansatz verfolgt, die Tastatureingabe zu prüfen. Das ist mir jedoch nicht gelungen, weil es zuviele Eventualitäten zu berücksichtigen gibt. Deshalb versuche ich einen direkteren Ansatz: Es soll geprüft werden, was als letztes Zeichen in PSPad geschrieben wurde. Wenn es ein "(" ist, dann den CallTipViewer anzeigen.


    Meine Vorstellung war, sich in PSPad einzuhaken (Hook) und das Char das dort geschrieben wird zu prüfen. Entweder geleich in einem WM_CHAR Event, oder das Zeichen könnte z.B. in ein eigenes Edit kopiert und dort überprüft werden, ob es ein "(" ist.


    Leider übersteigt das meine Fähigkeiten. Weiß jemand, wie man das macht, oder hat eine andere Idee?

  • Zum Testen kann folgende spezielle PSPad "Lite" Version benutzt werden.


    Dabei handelt es sich um die offizielle stable Version direkt von der PSPad-Seite,


    - OHNE AutoIt Funktionen !

    - mit folgenden Änderungen:

    • Einstellungen gesetzt für portable Anwendung = keine Schreibvorgänge außerhalb des PSPad-Ordners.
    • Augenfreundliches dunkles Theme eingestellt. 8)
    • Update-Anfragen abgeschaltet.


    Edit: 2021-03-12, Tests beendet, große Datei entfernt von Professor Bernd. Sollte jemand an weiteren Tests interessiert sein, bitte melden, dann lade ich es wieder hoch. :rock:

  • Ist es nicht einfacher, wenn du die Feststellung, wie "(" beim Anwender erstellt wird von diesem abfragst und in der INI speicherst (auch für verschiedene Layouts, die der User evtl. nutzt).

    Dann prüfst du auf genau diese gespeicherte Keysequenz.


    Die Abfrage an den Anwender könntets du so gestalten:


  • Ist es nicht einfacher, wenn du die Feststellung, wie "(" beim Anwender erstellt wird von diesem abfragst und in der INI speicherst ...

    Dann prüfst du auf genau diese gespeicherte Keysequenz.

    Das ist das, was ich in diesem Thread NICHT suche, die Tastatur soll NICHT ausgewertet werden!

    In anderen Threads habe ich den Ansatz verfolgt, die Tastatureingabe zu prüfen. Das ist mir jedoch nicht gelungen, weil es zuviele Eventualitäten zu berücksichtigen gibt. Deshalb versuche ich einen direkteren Ansatz: Es soll geprüft werden, was als letztes Zeichen in PSPad geschrieben wurde. Wenn es ein "(" ist, dann den CallTipViewer anzeigen.

    Es soll ein Ansatz gefunden werden, der NICHT die Tasteneingabe prüft, sondern das geschriebene Zeichen ermittelt. Leider weiß ich nicht, wie man das bewerkstelligen könnte. :( Deshalb habe ich eine ungenaue Vorstellung umrissen:

    Meine Vorstellung war, sich in PSPad einzuhaken (Hook) und das Char das dort geschrieben wird zu prüfen. Entweder gleich in einem WM_CHAR Event, oder das Zeichen könnte z.B. in ein eigenes Edit kopiert und dort überprüft werden, ob es ein "(" ist.


    Also: KEINE Auswertung der Tastatur! Stattdessen eine Ermittlung, welches Zeichen in PSPad geschrieben wurde. Wie kann man das Zeichen in PSPad ermitteln?