Frage

Ich habe für eine Weile gesucht und jeder scheint zu denken, dies nicht möglich ist, nur mit Hilfe von Java, so dass ich SO einen Schuss;)

Gibt es eine Möglichkeit, meine Java-Anwendung für Veranstaltungen hören müssen (wichtige Ereignisse im Besonderen), während eine andere nicht verwandte Anwendungsfenster Fokus hat? In meiner Situation, ich bin auf der Suche zu erkennen, wenn der Benutzer die ‚Pause‘ -Taste auf der Tastatur gedrückt hat, obwohl meine Java-Anwendung Fokus nicht hat.

Ich habe einige Leute gehört erwähnen, dass der einzige Weg ist, einige C-Code und verwenden JNI zu schreiben. Einfach nur neugierig, wenn jemand einen Weg wusste, dass zu vermeiden? Oder, wenn nicht, zumindest ein wirklich schönes Tutorial auf den c / JNI Sachen?

Danke

War es hilfreich?

Lösung

Es ist mein Verständnis, dass dies nicht getan werden kann. Auf einer grundlegenden Ebene, die JVM erzeugt nur Ereignisse für O / S Ereignisse es empfängt, und es erhält nur O / S Ereignisse Eingang, wenn es den Fokus hat.

Ich bin sicher, dass Sie könnte JNI verwenden auszulösen die O / S Ereignisse für alle Eingabe zu erzeugen, aber das wäre sehr O / S abhängig.

Andere Tipps

Hier ist die beste Antwort, die ich gefunden habe:

“ Es gibt eine Bibliothek zu handhaben nativer Tastatur- und Maussteuerung: https://github.com/kwhat/jnativehook ) „

Ich bin mir nicht bewusst irgendeine Weise um, dass entweder zu bekommen. Ich fand diesen Link auf die Java-Foren mit einem guten Beispiel dafür, wie Setup die JNI Sachen und eine globale Tastatur-Handler machen (zu viel hier hinzufügen). Es ist ein wenig (2005) datiert, aber das Beispiel sieht genug gründliche Sie den Start.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top