Ich habe neulich ein Projekt angefangen, das sich aber nach einigen Tagen als undurchführbar herausstellte. Eigentlich wollte ich das gar nicht selbst entwickeln - es stellte sich aber heraus, dass es die geforderte Lösung so noch nicht gab. Als ich dann nach dem alten Amiga-Magazin-Grundsatz "Fehlt Dir was? Programmiers Dir doch!" vorgehen wollte stellte ich schnell fest, dass alles gar nicht so einfach war, wie ich es mir vorgestellt hatte.
Aber beginnen wir von vorn: Ich war auf $dayjob mit einer Aufgabe betraut, die erforderte, an vielen Stellen Text einzufügen. Die einzufügenden Texte wiederholten sich aber hin und wieder. Daher dachte ich, es wäre toll, ein Macropad zu haben, das automatisch die 10 (Beispiel) letzten in die Zwischenablage kopierten Texte auf die Tasten legt und mit Druck auf die Taste den jeweiligen Text einfügt.
Da ich kein Macropad kaufen wollte, habe ich überlegt, das per Software zu realisieren und dachte, dass es eine solche Software doch bereits geben müsste: Die 10 Hotkeys werden einfach konfiguriert - zum Beispiel Alt+F1 bis Alt+F10 und anschließend braucht man nur noch die Zwischenablage beobachten und die Texte automatisiert einzutippen.
OK -ich hielt also nach Möglichkeiten Ausschau, die Zwischenablage zu überwachen. Das stellte sich als einigermaßen schwierig, aber machbar heraus - ich fand solche Lösungen für Java und Python. Ich entschied mich für Java. Das nächste Puzzleteilchen war schon etwas schwieriger zu finden: zuverlässig systemweit Tastendrücke detektieren auch wenn die Anwendung vielleicht gar kein eigenes Fenster hat oder dieses Fenster den Eingabefokus nicht hat. Für Java konnte ich hier nur Bibliotheken finden, die JNI oder JNA benutzten. Ich biss in den sauren Apfel und entschied mich für eine davon, habe aber bisher noch keine Tests zur Portabilität der Lösung gemacht. Der Grund für die Vernachlässigung war, dass das dritte und letzte Puzzleteil (aus meiner Sicht) nicht realisierbar ist:
Das dritte Puzzleteil ist - überraschenderweise für mich - das schwierigste und das, für das ich keine Lösung finden konnte. Das ist auch der Grund, warum ich das Projekt wieder abgesagt habe: Das dritte Puzzleteil ist die Anforderung, Text in den Eingabestrom der Tastaturevents einzuspeisen. Denn egal, wo der Eingabefokus ist - auf Druck der festgelegten Taste muss der Content dort eingegeben werden. In Java, dies könnte mittels Robot erledigt werden - meine Tests zeigen aber, dass dies nicht zuverlässig funktioniert - außerdem ist es schwierig, Text in der Zwischenablage wieder in raw Key Events umzuwandeln. Und ich musste feststellen, dass bereits einfache Tastendrücke mittels Robot nicht zuverlässig einzuspeisen sind. Die alternative Idee, auf einen der konfigurierten Tastendrücke hin den aktuellen Wert der Zwischenablage zu überschreiben und anschließend die Tastenkombination für Einfügen aus der Zwischenablage auszulösen. Es stellte sich aber heraus, dass diese Idee mittels Robot gar nicht funktionierte.
Weitere Arbeit wollte ich aus Frustration nicht hineinstecken: Man könnte natürlich weitere Entdeckungsreisen in anderen Programmiersprachen unternehmen, aber...
Syntax-Highlighting für InfluxDB in Java-Anwendungen
01.12.2019
Wie bereits in einem früheren Artikel beschrieben beschäftige ich mich derzeit mit Ideen, Echtzeitdatenbanken und speziell InfluxDB in die sQLshell zu integrieren.
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
In eigener Sache...
Weiterlesen...Nachdem der Security Manager in Java ja nun abgekündigt ist, wollte ich mich noch einmal ausführlich darum kümmern, was dieses Konzept eigentlich kann und was nicht- und ob es letztlich verdient auf dem Scheiterhaufen landet.
Weiterlesen...Ich habe mein Projekt mit Skripts und Skriptfragmenten für Gnuplot wieder einmal überarbeitet und ein wenig erweitert.
Weiterlesen...Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen Codeberg-Repositories findet man hier.