+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Globaler KeyListener

  1. #1
    0x2A
    Gast/Guest
    Hallo zusammen,
    ich möchte in Java sämtliche Tastatureingaben auslesen, auch wenn eine andere Anwendung den Focus hat. Im Internet findet man zwar Lösungen über native Methoden, aber dadurch geht eben auch die Plattformunabhängigkeit verloren. Meine Frage ist jetzt, ob sich ein globaler KeyListener auch allein mit Java realisieren lässt (muss ja eigentlich, Swing schafft das schließlich auch, aber der ist eben nicht global), oder ob das nicht möglich ist.

  2. #2
    Global Moderator Viertel Gigabyte
    Registriert seit
    05.08.2008
    Fachbeiträge
    4.949
    Genannt
    323 Post(s)
    Das geht eigentlich nicht. Wie und wo meinst du, dass Swing das "schafft"?

  3. #3
    0x2A
    Gast/Guest
    Der KeyListener von Swing kann ja auch KeyEvents regristieren, und ich bin davon ausgegangen, dass diese global sind, und Swing sie nur dann weiterleitet, wenn die der Frame den Focus hat. Weiß jemand, wie die KeyEvents in Swing empfangen werden? Denn sie müssen ja in irgendeiner Weise von außen empfangen werden.

  4. #4
    User Kilobyte
    Registriert seit
    25.09.2008
    Fachbeiträge
    242
    Genannt
    15 Post(s)
    Zitat Zitat von 0x2A Beitrag anzeigen
    Weiß jemand, wie die KeyEvents in Swing empfangen werden?
    durch native code.

    plattform unabhaengig schaffst du das nicht

  5. #5
    Frequent User Megabyte
    Registriert seit
    01.08.2013
    Fachbeiträge
    1.737
    Genannt
    112 Post(s)
    Auch mit native-Code ist das nicht ganz trivial (und stellt auch ein Sicherheitsrisiko dar: Keylogger). Wenn ich mich recht entsinne, muss man die Win32-API-Funktion SetWindowsHookEx verwenden.
    Für globale Hooks gilt allerdings:
    The global hooks are a shared resource, and installing one affects all applications in the same desktop as the calling thread. All global hook functions must be in libraries. Global hooks should be restricted to special-purpose applications or to use as a development aid during application debugging.
    Swing wird nicht global alle Tastenanschläge abfangen, sondern ebenfalls nur die Windows-Messages auswerten, die an den Prozess mit den GUI-Komponenten gesendet werden.

    *** Edit ***

    Kurze Recherche ergab folgendes: https://github.com/kwhat/jnativehook
    Sieht auf den ersten Blick so aus, als wenn es die komplizierte Arbeit kapselt und weitestgehende Plattformunabhängigkeit ermöglicht.

+ Antworten Thema als "gelöst" markieren

Direkt antworten Direkt antworten

Zu welchem Kontinent gehört Japan?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Globaler KeyHook für Mediatasten
    Von Darse im Forum Allgemeine Themen
    Antworten: 14
    Letzter Beitrag: 31.03.2016, 12:54
  2. KeyListener '@'/ ALT GR
    Von vfl_freak im Forum Java-Grundlagen
    Antworten: 12
    Letzter Beitrag: 28.09.2014, 00:37
  3. (Events) Systemweiter Keylistener?
    Von Gossi im Forum AWT, Swing, JavaFX & SWT
    Antworten: 9
    Letzter Beitrag: 21.02.2014, 17:08
  4. KeyListener
    Von Zombiepriester im Forum Java-Grundlagen
    Antworten: 22
    Letzter Beitrag: 01.12.2013, 18:42
  5. Antworten: 0
    Letzter Beitrag: 19.03.2008, 14:34

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •