Vordergrund und Fokus setzten oder Modales Einabefeld

Andi_CH

Top Contributor
Wie kann ich ein Eingabefeld (z.B. per Timer oder X-Listener) in den Vordergrund setzten und dem den Fokus geben? Und zwar egal wer gerade den Fokus hat. (Es gelingt mir nur innerhalb der VM - wenn ich z.B. den Fokus ins Eclipse setzte bleibt der da!)

Code posten macht irgendwie keinen Sinn.

Der Hintergrund ist immer noch mein besch(iss)eidener Barcodescanner der sich wie eine Tastatur verhält.

Alternativ: Kann ich ein Eingabefensterchen ECHT modal machen? Dumm ist nur, dass ich dann Windoofs nicht mehr bedienen könnte :-( (Hm - per Socket remote abschiessen oder so)
 

André Uhres

Top Contributor
Wie kann ich ein Eingabefeld (z.B. per Timer oder X-Listener) in den Vordergrund setzten und dem den Fokus geben? Und zwar egal wer gerade den Fokus hat. (Es gelingt mir nur innerhalb der VM - wenn ich z.B. den Fokus ins Eclipse setzte bleibt der da!)

Code posten macht irgendwie keinen Sinn.

Der Hintergrund ist immer noch mein besch(iss)eidener Barcodescanner der sich wie eine Tastatur verhält.

Alternativ: Kann ich ein Eingabefensterchen ECHT modal machen? Dumm ist nur, dass ich dann Windoofs nicht mehr bedienen könnte :-( (Hm - per Socket remote abschiessen oder so)

Hallo Andi_CH,

die Antwort ist einfach: Java kann das alles nicht :D.

Gruß,
André
 

Andi_CH

Top Contributor
Den Verdacht hatte ich schon, aber danke für die Bestätigung.

Wenn der Auftraggeber bei seinen Forderungen bleibt, muss ich wohl auf C++ o.ä. umstellen, was ihm aber genau so wenig passt. Herrlich wenn man jemanden gegen sich selbst ausspielen kann :D
 
Zuletzt bearbeitet:
S

SlaterB

Gast
teste folgendes, klappt bei mir auch gegen Eclipse mehr oder weniger:
Java:
public class TestGUI
    extends JFrame
{
    JTextField tf = new JTextField();

    public TestGUI()    throws Exception  {
        add(tf);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 300);
        setVisible(true);

        Thread.sleep(3999);
        setToFront();
    }

    private void setToFront()  {
        setExtendedState(ICONIFIED);
        setExtendedState(NORMAL);
        requestFocus();
        toFront();

        // leider leichte Anzeigefehler, besonders wenn danach ein Dialog gezeichnet wird,
        // ansonsten auch kaum ein Grund für toFront(),
        // mit repaint scheint es sich zu bessern, etwas unklar hier
        repaint();

        tf.requestFocusInWindow();
    }

    public static void main(String[] args)    throws Exception  {
        TestGUI t = new TestGUI();
    }
}
 

Andi_CH

Top Contributor
Ich starte das Ding - klicke in ein beliebiges Fenster (z.B. Notepad, Eclipse oder was auch immer), tippe etwas oder "schiesse" mit dem Barcodescanner und, welch Wunder, das landet im Notepad oder eben dort wo der Fokus gerade ist!

Ich bin eben auch zur Überzeugung gekommen, dass Modalität, Focus etc. nur innerhalb derselben VM gesetzt werden können.
 

hdi

Top Contributor
Bleibt dir nur ein Workaround über nen Robot: Alt+Tab-Events raushauen solange bis dein WindowListener ein windowActivated() feuert. Jetzt hat deine App den Fokus.
 
S

SlaterB

Gast
und nach 4 sec springt es auch nicht zurück?
ich habe das erste Posting als ein bestimmtes Ereignis gelesen, willst du stattdessen verhindern dass generell der Focus verloren geht?
da hat André Uhres dann wohl wirklich besser gelesen (edit: bzw. bis eben nicht noch mehr Hacks genannt werden ;) )
 
Zuletzt bearbeitet von einem Moderator:

bERt0r

Top Contributor
Warum musst du für deinen Barcodescanner überhaupt einen Focus versetzten? Für mich hört es sich so an, als wird ja gerade gefordert dass du irgendwo reinklickst und dann der Barcode genau da eingefügt wird wo der Benutzer vorher den Cursor hingestellt hat. Also holst du vom Scanner die Daten rein und schreibst sie per Robot raus.
 

thE_29

Top Contributor
Es gibt Barcodescanner die verhalten sich wie Tastaturen.. (kenne ich von der alten Firma)

Dh, wenn man einen Code scannt, wird der EAN Code einfach ausgegeben und zwar genau dort, wo der Fokus/Cursor steht..


Das Problem hört sich eher danach an, dass der User nicht weiß was er tut.. Wenn ich ein Programm habe, was mit EAN-Codes umgehen kann und ich was scanne, dann hat das EAN-Programm auch offen zu sein..

Irgendwann muss mal ein Schlussstrich gezogen werden um was sich ein Dev noch alles kümmern soll.. Soll Programm XYZ mit EAN was machen, so hat es offen zu sein und nicht zB der Browser oder sonstiges..
 

Andi_CH

Top Contributor
und nach 4 sec springt es auch nicht zurück?
Ich habe übersehen, dass ich erst noch einen loop bauen muss - scheint aber zu klappen, wobei ich es noch genauer testen muss.
Es ist halt immer noch die unschöne Variante, weil ich ein GUI basteln muss das ich gar nicht wirklich brauche und weil es dann zwingend ein exklusiver PC für diese Applikation sein muss.
Die Maschine ist zwar so nicht anderweitig nutzbar, aber z.B. Fenster des Virenscanners oder sonstige die automatisch kommen, könnte man so austricksen.

Warum musst du für deinen Barcodescanner überhaupt einen Focus versetzten? Für mich hört es sich so an, als wird ja gerade gefordert dass du irgendwo reinklickst und dann der Barcode genau da eingefügt wird wo der Benutzer vorher den Cursor hingestellt hat. Also holst du vom Scanner die Daten rein und schreibst sie per Robot raus.

Ich habe keine Ahnung wie du zu dieser Annahme kommst, denn es ist genau umgekehrt, aber eigentlich habe ich das doch längst beschrieben.

Also - der verd.... Barcodescanner verhält sich exakt wie eine Tastatur.
Nun soll aber, unabhängig davon wo der User hinklickt oder was für ein Fenster sich automatisch öffnet, der Input der vom Scanner kommt in meiner Applikation landen und das soll wenn irgendwie möglich ein "unsichtbares" Programm sein - ich meine damit eines ohne GUI.

Wenn du das auf irgend eine andere Art schaffst, dann sag mir konkret wie.
(Das währe ja dann sozusagen ein Keylistener und das hatten wir an anderer Stelle schon)

Ich frage gerne noch einmal:
Wer weiss wie man in einer anderen Sprache (Bevorzugt C++) einen Keylistener schreibt, der die eine Ereignisse zu einem Javaprogramm weiterleitet (als fertiger String z.B.) und alle anderen an des BS weiterschickt, kann sich gerne per PN melden. Das ist nämlich alleweil noch billiger als wenn ich meine verblassten C++ Kenntnisse auffrischen müsste aber konkrete Angebote gehören nicht hierher und da gleich einen Job draus zu machen halte ich für Overkill)
 

Andi_CH

Top Contributor
Also da hänge ich jetzt nicht auch noch an das letzte Post :

Es gibt Barcodescanner die verhalten sich wie Tastaturen.. (kenne ich von der alten Firma)

Ich kenne bis jetzt keine anderen - um konkrete Hinweis welche das anders machen bitte ich ausdrücklich.

Dh, wenn man einen Code scannt, wird der EAN Code einfach ausgegeben und zwar genau dort, wo der Fokus/Cursor steht..
... und genau das WILL ich nicht bzw. kann es nicht brauchen.

Das Problem hört sich eher danach an, dass der User nicht weiß was er tut.. Wenn ich ein Programm habe, was mit EAN-Codes umgehen kann und ich was scanne, dann hat das EAN-Programm auch offen zu sein..
Das Programm soll ein Hintergrundprozess sein - längst nicht alle Programme brauchen ein GUI.

Irgendwann muss mal ein Schlussstrich gezogen werden um was sich ein Dev noch alles kümmern soll.. Soll Programm XYZ mit EAN was machen, so hat es offen zu sein und nicht zB der Browser oder sonstiges..

Irgenwann muss ein Schlussstrich mit Bevormundung gemacht werden - ich will das Zeugs nicht in einem GUI, denn das Programm hat wenn immer möglich gar kein GUI.

Frag doch erst einmal nach der Umgebung:

Da kommt der LKW-Fahrer und will die bereitstehende Ware mitnehmen.
Der Typ der die Waren übergibt, zieht sein Knarre und schiesst :D - gleichzeitig werden von den installierten Cams Bilder genommen und vollautomatisch abgespeichert. Der PC steht wohl kaum im Warenausgang (da würde er nicht lange überleben) sonder vermutlich im Büro des Werkstattchefs.
Es müsste doch möglich sein, gleichzeitig noch etwas anderes auf demselben PC zu machen.

Meinst du der latscht erst ins Büro um nachzusehen ob deine "EAN Applikation" "offen" ist?
Da kennst du die Leute aber schlecht.


--


Wir sind gleichweit wie im anderen Thread - warum wollt ihr mein Problem ändern, nur weil ihr diese Art von Welt nicht kennt?
 

thE_29

Top Contributor
Scanner die nicht via USB angesteckt werden (also serielle) haben das glaube ich anders gehandhabt.. (also wie man die Daten abgreift)

Damit haben sich aber nur die C/C++ Devs in der alten Firma rumgeärgert.. Wir Java Devs bekamen immer nur die USB-Versionen..


Die Frage ist halt, ob man diese "alten" (=seriellen) Geräte noch herbekommt, bzw. ob die noch hergestellt werden..

Edit: Das mit der NICHT-GUI hast du aber auch erst jetzt gesagt.. Im ersten Post hast du noch was von einem modalen Dialog geschrieben ;) (was man ab Java 1.5 mit setAlwaysOntop auch erreichen könnte)
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Du müsstest schaun ob du in C erkennen kannst, ob das nicht vom Standard Input Gerät kommt (Tastatur) und dann könntest du es via UDP/TCP an dein Java-Programm weiterschicken..

Die Frage ist halt, kann man es unterscheiden?

Guck mal hier rein: http://www.java-forum.org/codeschnipsel-u-projekte/65318-globaler-java-key-logger-windows.html und frag The_S sonstmal..

Im erwähnten Thread sehe ich "unsaubere Lösung" - "wo ist der C-Source-Code" - "Polling alle 5mS" --> möchtest du so etwas in deiner Software verwenden? Ich nicht.

Mit "Glaub", "schau mal" oder "du musst halt schauen" ist mir nicht geholfen - wer weiss KONKRET wie das geht - ich bin sicher nicht der erste Mensch der eine Lösung für so ein Problem braucht.
 

bERt0r

Top Contributor
Konkret Funktioniert so ein globaler Keylistener so, dass ein C/C++ Programm über die winapi die KeyEvents abfängt und dann über JNI ans Java Programm weiterleitet.
 

thE_29

Top Contributor
Der C-Source ist doch im Src-Package von seiner HP zum Runterladen..

Und gerade mit einem Dev von der alten Firma geredet: Jo, diese seriellen Scanner haben die Daten via COM-Schnittstelle geschickt und diese wurden direkt dort abgefragt und damit weitergearbeitet..

Daher konnte mir der auch nichts sagen, ob das in C sauber abfragen geht.. (was von welcher Tastatur kommt)


IMHO müsste es in der WinApi da schon Funktionen geben (dann geht das Prog aber nicht unter Linux).

Am Besten da mal weitersuchen + C Testprogramm schreiben und schaun was für Flags, etc. der EAN-Scanner so schickt..

Nachtrag: Link vergessen..
ActivateKeyboardLayout function
 
Zuletzt bearbeitet:
S

SlaterB

Gast
alle Programmierung, ganz besonders in Java, ist am saubersten immer nur in der eigenen Sandbox mit ausreichend Speicher drumherum,
jede externe Interaktion, ob Einlesen aus Dateien, Tastatur, Maus, Netzwerk, Encodings, Focus, Minimierungszustand, Ausgabe in Text oder Grafik
ist immer nur eine theoretisch funktionierende Sache, bestenfalls durch Sockets, IO und Swing standardisiert

dass der Barcodescanner die Daten als Tastatur und z.B. nicht über Socket anbietet ist schon dem selber anzumeckern,
dafür mindestens kann Java nichts,
wenn du ansonsten noch mit Virenscanner und sonstigen Problemen automatisch agieren willst, dann ist das weit weg aus der Java-Welt,
C++ usw. sind immer näher am Betriebssystem dran
 
Zuletzt bearbeitet von einem Moderator:

bERt0r

Top Contributor
Das bedeutet, das was du haben willst ist ein Globaler KeyHook / Keylogger und sowas ist in reinem Java einfach nicht möglich. Die JVM und das Betriebssystem laufen einfach auf zwei verschiedenen Ebenen, aber das weißt du sicher. Der einzige weg sowas zu realisieren ist, indem man die Plattformunabhängigkeit deines Javaprogramms aufgibt und eine Betriebssystemnähere Komponente hinzunimmt.
Es gibt einige beispiele von solchen Java-Keyloggern, es wollten schliesslich schon genug leute einen "Java Trojaner" programmieren. Die oben gepostete Methode über JNI ist meines Wissens nach die einzig sinnvolle dafür. Hab das ganze auch schonmal ausprobiert, läuft super.
 

Andi_CH

Top Contributor
Eigentlich sollte ich langsam wissen, dass hier kaum jemand auf dem Laufenden ist, was im Thread schon alles geschrieben wurde :

JA ich weiss schon lange, dass der Weg über einen Keylogger mit Java alleine nicht möglich ist und suche ja auch schon eine ganze Weile nach konkreter Unterstützung ......
(oder eben nach Auswegen, aber die sehe ich nur als temporäre Lösung)

Der Keylogger könnte ja Plattformabhängig ausgetauscht werden - das ist das kleinste Problem, aber der Kunde ist eh ein Windoofs-only-customer. Die Kommunikation lässt sich sehr wohl unabhàngig gestalten ...

--

Véllig OT: Warum nur kommtt, seit ich heute Eclise gestartet habe ein é wenn ich auf die Taste mit dem ö drècke? Alle Umlaute sind mit und ohne Shift vertauscht???
Aber nur die drei Tasten è/ü, é/ö, à/ä - hat das auch schon jemand beobachtet (Ach Eclipse làuft im Moment gar nicht mehr...)
 

thE_29

Top Contributor
Du könntest aber auch einen Dialog modal machen und mit setAlwaysOnTop in den Vordergrund stellen und dort die Daten abgreifen..

Ist zwar auch nicht die schönste Art, aber sowas könnte auch klappen..

Ungefähr so:

Java:
		final JDialog dlg = new JDialog((JFrame)null, "DIALOG", true);
		JTextField field = new JTextField();
		field.addFocusListener(new FocusListener(){

			@Override
			public void focusGained(FocusEvent e) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void focusLost(FocusEvent e) {
				dlg.toFront();
				
			}});
		field.addKeyListener(new KeyListener(){

			@Override
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void keyReleased(KeyEvent e) {
				
				System.out.println(">> ZEICHEN: " + e.getKeyChar());
			}

			@Override
			public void keyTyped(KeyEvent e) {
				// TODO Auto-generated method stub
				
			}});
		dlg.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
		dlg.setAlwaysOnTop(true);
		dlg.setSize(300,300);
		dlg.add(field);
//		dlg.setLocation(-1024, -768);
		dlg.setLocationRelativeTo(null);
		dlg.addFocusListener(new FocusListener(){

			@Override
			public void focusGained(FocusEvent e) {
				// TODO Auto-generated method stub
			}

			@Override
			public void focusLost(FocusEvent e) {
				dlg.toFront();
				
			}});
		dlg.setVisible(true);

Setzt man die Position auf -1024,-768 (müsste man vorher rausrechnen ob mehrere Monitor da sind, etc), so sieht man nichtmal den Dialog, aber es wird auf die Eingabe reagiert..

Problem ist halt, man kann kein anderes Programm mehr fokusieren.. Bzw. geht es, wenn man oft genug woanders hinklickt...

Also auch nicht wirklich eine zufriedenstellende Lösung..
 
Zuletzt bearbeitet:

bERt0r

Top Contributor
Eigentlich sollte ich langsam wissen, dass hier kaum jemand auf dem Laufenden ist, was im Thread schon alles geschrieben wurde :

JA ich weiss schon lange, dass der Weg über einen Keylogger mit Java alleine nicht möglich ist und suche ja auch schon eine ganze Weile nach konkreter Unterstützung ......
(oder eben nach Auswegen, aber die sehe ich nur als temporäre Lösung)

Der Keylogger könnte ja Plattformabhängig ausgetauscht werden - das ist das kleinste Problem, aber der Kunde ist eh ein Windoofs-only-customer. Die Kommunikation lässt sich sehr wohl unabhàngig gestalten ...

Du hast in diesem Thread ein ganz anderes Problem beschrieben. Die ganze focus Geschichte ist doch nichts als eine (schlechte)Notlösung für deine eigentliche Anforderung.
Ich leider nicht wo deine Probleme liegen. Dir wurden hier bereits konkrete Lösungen mit Sourcecode präsentiert. Noch viel konkreter gehts leider nicht mehr. Hier hast du noch einen Link, wo du gleich den ganzen Source code siehst: Java – Global (low level) Keyboard / Mouse Hook – JNI kSquared.de – Blog

Bezüglich always on top: Das beeinflusst nur die Anzeige, der Focus kann noch immer auf andere Programme gelegt werden -> Die KeyEvents kommt nicht durch.
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Dass in Java kein Keylogger möglich ist weiss ich schon lange und die Frage nach einem, ich sag dem mal "C++ Plug in" kam auch letztes mal keine Antwort - und der einzige Vorschlag stellte sich schon nach 15 Sekunden lesen als unprofessionell, um nicht zu sagen untauglich, heraus.

Aber jetzt allgemeiner, auch wenn es etwas OT ist:

Schon bei der Frage "Suche nach Servern mit dynIP" wurde zur Hauptsache mit DynDNS argumentiert, obwohl von Anfang klar gewesen war, dass das nichts bringt (wenn ich die Server nicht kenne, kenne ich ja deren Name auch nicht) und ich habe von Anfang die Frage gestellt "wie finde ich Server".

Oder meine Fragen nach "best pratices" - die versandeten auch.

Ich kann mir einfach nicht vorstellen, dass hier keine Kenntnisse zu non-standard Problemen vorhanden sind. Wo ist der Forschergeist geblieben der Ingenieuren eigen sein sollte?
Ich suche hier nicht unbedingt konzeptionelle Hilfe, das habe ich im Griff. (Ist so, obwohl meine Erfahrung ja immer wieder mal in Frage gestellt wird) Ich suche konkrete Hinweise wie ich etwas in Java umsetzen kann.

Aber freut euch: Bald kommen ja wieder die Fragen "Wie zeichne ich einen Tannenbaum" - offensichtlich sind die spannender :D

(Nö bitte nicht ärgern - das Letzte hätte Humor sein sollen :) )
 
S

SlaterB

Gast
da du jetzt schon zwei Beleidigungen an alle anderen in dieses Thema geschrieben hast
(erst: keiner liest den Thread/ nun: keiner kann mehr als Tannenbaum malen, auch wenn das ein Scherz war, der Rest klingt genauso)
kann ich mir ja nun auch eine erlauben: du hast weder von Java eine Ahnung, noch wie du in diesem Thread schreibst von C++??
auch sonst zu Windows-Betriebssystem keinen eigenen Forschungsgeist,
was bleibt denn dann noch für >10 Jahre Erfahrung, nur Inselsprachen wie Ada ohne sonstige Bedeutung?

ich habe gewiss zum letzten Mal in einem deiner Threads mit Hilfe angefangen wie im dritten Post,
ja, ich weiß, dass sie (hier) für dich nichts wert war, hast du ausreichend mitgeteilt..
 

bERt0r

Top Contributor
Wenn du so ignorant und überheblich bist, dass du Vorschläge, die dir von mehreren Benutzern (und wohl auch schon in mehreren Threads) gemacht wurden, nach 15 Sekunden lesen als unprofessionell einstufst kann man dir leider nicht helfen. Die ganze 5ms polling sache is blödsinn und keylogging ist auch so eine einfache Geschichte, da wirst du kein Paper oder sonstiges dazu finden. Nachdem du ja ein c++ guru bist, solltest du eigentlich wissen wie ein Hook funktioniert, wenn nicht lern es.
 

Andi_CH

Top Contributor
da du jetzt schon zwei Beleidigungen an alle anderen in dieses Thema geschrieben hast
(erst: keiner liest den Thread/ nun: keiner kann mehr als Tannenbaum malen, auch wenn das ein Scherz war, der Rest klingt genauso)

Beleidigungen? hm - wenn das so rüberkam Sorry.

Dass anstatt Lösungsvorschläge Änderungsvorschläge kommen ist eine Tatsache die sich nicht leugnen lässt.
Dass meine Fragen nicht genau gelesen werden ist auch eine Tatsache: Thema wie finde ich Server - Vorschlag dynDNS - Aehm - damit finde ich keine Server, damit finde ich IP Nummern wenn ich den Servernamen kenne ...

Ich habe NICHT gesagt, dass niemand einen Tannenbaum zeichnen kann, ich habe nur gesagt, dass auf diese Art von Themen immer sehr schnell Antworten können - sich also ganz offentsichtlich die Meisten hier auf diese Art von Fragen freuen.

Was man nach 15 Sekunden als unprofessionell abtun kann ist der Keylogger auf den verwiesen wurde - 5mS polling ... na ja.

Und deine Hilfe habe ich nicht runtergemacht - ich habe nur gesagt, dass es zweite Wahl ist, einem Prozess der eigentlich im Hintergrund laufen soll ein GUI zu verpassen um Input abzufangen.

Aber hier wird wohl kaum mehr etwas Produktives kommen ...
 
G

Gast2

Gast
Ich habe bislang nur lesend dieses Thema verfolgt und muss dem TO Leider sagen:

Das ist sehr wohl beleidigend wie du mit der angebotenen Hilfe umgehst.

PS: Der Titel des Threads bezieht sich darauf wie man eine GUI Modal setzt oder permanent in den Vordergrund. Du hättest vielleicht auch ein neues Thema eröffnen können wenn das nicht mehr ist was du möchtest.

PPS: Die Tiraden die jetzt wahrscheinlich von dem TO als Rechtfertigung kommen werde ich nicht kommentieren.
 

jgh

Top Contributor
btt (dem ursprünglichen)...obwohl ich jetzt hier meine Antwort poste, wird jedes Keyevent durch den GlobalenKeyLogger mit auf der Konsole von eclipse mitgeloggt. Jeder Mausklick, jede Korrektur.
Keine Ahnung ob das etwas für deinen Scanner ist, aber einen Versuch ist es Wert, zumal imho die Webseite das verspricht, wovon ich denke das du es bräuchtest.

Deshalb gibt es in Java auch keinen KeyListener/KeyLogger der alle Tastatureingaben systemweit mitschneidet, auch wenn Ihre Anwendung nicht den Fokus besitzt.

Dieses "Problem" kann auf Windowssystemen mit dem Java Global Key Logger umgangen werden. Über eine native Bibliothek werden die Tastatureingaben mitgeschnitten und an eine Java Schnittstelle weitergeleitet. Von dort aus können Sie die Eingaben weiterverarbeiten.


Hier der Bsp-Code:

Java:
import java.io.File;

import de.stkiese.dflt.GermanKeyboardConverter;
import de.stkiese.events.GlobalKeyEvent;
import de.stkiese.interfaces.GlobalKeyListener;
import de.stkiese.logger.GlobalKeyLogger;

/**
 * Example how to use the Java Global KeyLogger. First you have to load the
 * GlobalKeyLogger.dll. E. g.:
 * 
 * <pre>
 * <code>static {
 *    try {
 *      System.loadLibrary("GlobalKeyLogger");
 *    }
 *    catch (UnsatisfiedLinkError ule) {
 *      System.load(".\\lib\\GlobalKeyLogger.dll");
 *    }
 * }</code>
 * </pre>
 * 
 * Then you have to create a new {@link de.stkiese.logger.GlobalKeyLogger}, add
 * a {@link de.stkiese.interfaces.GlobalKeyListener}, set a
 * {@link de.stkiese.interfaces.KeyboardConverter} e. g.
 * {@link de.stkiese.dflt.DefaultKeyboardConverter},
 * {@link de.stkiese.dflt.GermanKeyboardConverter} or an own implementation.
 * After a {@link de.stkiese.logger.GlobalKeyLogger#startListening()} call, your
 * Listener will receive events.
 * 
 * @author Stefan Kiesel
 */
public class Example {

	static {
		try {
			System.loadLibrary("GlobalKeyLogger");
		} catch (UnsatisfiedLinkError ule) {
			System.load(new File("./GlobalKeyLogger.dll").getAbsolutePath());
		}
	}

	public static void main(String[] args) {

		GlobalKeyLogger gkl = new GlobalKeyLogger();
		gkl.addGlobalKeyListener(new GlobalKeyListener() {

			public void keyPressed(GlobalKeyEvent gke) {
				System.out.print(gke.getConverted());
			}

		});
		gkl.setConverter(new GermanKeyboardConverter());
		gkl.startListening();
	}
}

und die benötigten Anhänge:
PS: die dll in die Root des Projektes, oder Zeile 39 entsprechend ändern.
 

Anhänge

  • JGlobalKeyLoggerBin.zip
    11,3 KB · Aufrufe: 0

bERt0r

Top Contributor
Und ich bereits sagte, dein 5ms Polling argument ist blödsinn, ich habe keine Ahnung wie du auf sowas kommst.
PS: Egal von wie viel Erfahrung du hier schreibst, dein Umgangston und die Art von "Problemen" bei denen du hier Hilfe suchst entsprechen eher einem SkriptKiddy das will, dass wir ihm einen Trojaner schreiben als einem Erwachsenen Programmierer. (KeyLogging, ScreenCapture, "Server" finden ohne dass man weder IP, noch Name, noch sonstwas weis und nichtmal einen Statischen Server aufsetzen kann...)
Das soll jetzt gar nicht beleidigend sein, es sei denn es trifft zu, aber das ist einfach das Bild von dir das du über dieses Forum kommunizierst.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
T Swing Java-Frame bei Programmstart NICHT im Vordergrund öffnen AWT, Swing, JavaFX & SWT 2
M Internal Frame in den vordergrund AWT, Swing, JavaFX & SWT 4
S JLabel in den Vordergrund rücken AWT, Swing, JavaFX & SWT 1
P Anwendung kommt nach minimieren nicht mehr in den Vordergrund AWT, Swing, JavaFX & SWT 5
X Swing 2 Fenster (1 im Vordergrund) AWT, Swing, JavaFX & SWT 6
TheJavaKid JFrame defokusieren aber im Vordergrund behalten AWT, Swing, JavaFX & SWT 0
G JavaFX Sub-Fenster im Vordergrund halten AWT, Swing, JavaFX & SWT 5
B JFrame kommt nicht in den Vordergrund AWT, Swing, JavaFX & SWT 7
I Fenster immer im Vordergrund AWT, Swing, JavaFX & SWT 14
M JLayeredPane mit JPanel im Vordergrund, Hintergrundelemente sperren AWT, Swing, JavaFX & SWT 7
B Swing Window nur bedingt im Vordergrund AWT, Swing, JavaFX & SWT 5
R Label in den Vordergrund einblenden AWT, Swing, JavaFX & SWT 5
N Komponenten in den Vordergrund AWT, Swing, JavaFX & SWT 5
M JFrame in den Vordergrund holen AWT, Swing, JavaFX & SWT 2
M JFrame im Vordergrund halten AWT, Swing, JavaFX & SWT 4
A JLabel in Vordergrund AWT, Swing, JavaFX & SWT 22
F Multi-Frame im vordergrund AWT, Swing, JavaFX & SWT 2
M Buttons im Vordergrund AWT, Swing, JavaFX & SWT 2
J Fenster in den Vordergrund holen AWT, Swing, JavaFX & SWT 3
M Swing JDialog in den Vordergrund AWT, Swing, JavaFX & SWT 2
O JFrame permanet im Vordergrund trotz Alt+Tab AWT, Swing, JavaFX & SWT 2
A Programm automatisch in den Vordergrund AWT, Swing, JavaFX & SWT 5
Z JOptionPane mit einer Methode in dem Vordergrund setzen? AWT, Swing, JavaFX & SWT 6
G Fenster immer im Vordergrund und aktiv? AWT, Swing, JavaFX & SWT 2
C JLabel in de Vordergrund AWT, Swing, JavaFX & SWT 4
B SWT-Shell in den Vordergrund bringen AWT, Swing, JavaFX & SWT 2
S Frame Fenster immer im vordergrund AWT, Swing, JavaFX & SWT 3
N JComboBox in den Vordergrund senden? AWT, Swing, JavaFX & SWT 7
vogella JOptionPane in den Vordergrund bringen AWT, Swing, JavaFX & SWT 2
E Programm immer im Vordergrund ! AWT, Swing, JavaFX & SWT 8
B JInternalFrame in den Vordergrund rücken + Focus AWT, Swing, JavaFX & SWT 15
B Fenster in den Vordergrund holen AWT, Swing, JavaFX & SWT 4
J JTabbedPane Tab in den Vordergrund (aktiviert) bekommen ? AWT, Swing, JavaFX & SWT 2
L Falsches Fenster erscheint im Vordergrund bei Taskwechsel AWT, Swing, JavaFX & SWT 3
F Fenster in den Vordergrund aber nicht im Focus AWT, Swing, JavaFX & SWT 21
T Dialog nur anwendungsweit in Vordergrund AWT, Swing, JavaFX & SWT 7
TRunKX JAva Fenster in den Vordergrund bringen AWT, Swing, JavaFX & SWT 7
A Dialog im Vordergrund halten AWT, Swing, JavaFX & SWT 41
G Buttons und Label nicht im Vordergrund AWT, Swing, JavaFX & SWT 20
G JFrame in den Vordergrund bringen AWT, Swing, JavaFX & SWT 8
G JDialog immer im Vordergrund AWT, Swing, JavaFX & SWT 2
A Frame in den Vordergrund rücken AWT, Swing, JavaFX & SWT 2
M KeyEvent ohne Fokus konsumieren AWT, Swing, JavaFX & SWT 1
H Swing Wie Fokus von JTextField entfernen? AWT, Swing, JavaFX & SWT 9
CptK Fokus auf geöffnetes Zweit-Fenster setzen und Eingaben außerhalb blocken AWT, Swing, JavaFX & SWT 2
Neumi5694 Swing Card-Layout, Fokus AWT, Swing, JavaFX & SWT 2
M JavaFX Absoluter Fokus während drag Event AWT, Swing, JavaFX & SWT 10
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
C SWT MenuBar & MenuItems Fokus wenn F10 unterdrücken/entfernen AWT, Swing, JavaFX & SWT 9
1 Swing Bestimme ob ein Subelement eines panel den Fokus verloren hat AWT, Swing, JavaFX & SWT 2
B Swing Fokus auf JPanel setzen AWT, Swing, JavaFX & SWT 2
J Swing Fokus JInternalFrame fehlerhaft AWT, Swing, JavaFX & SWT 4
B Fokus markierung entfernen AWT, Swing, JavaFX & SWT 2
C AWT Fokus von Component entfernen, wenn kein anderes vorhanden AWT, Swing, JavaFX & SWT 4
G SWT Fokus auf MsgBox setzen AWT, Swing, JavaFX & SWT 3
M Fokus für KeyListener AWT, Swing, JavaFX & SWT 9
A Fokus wieder in ein JTextField setzen AWT, Swing, JavaFX & SWT 4
N Filternde Combobox in JTable verliert Fokus nach erster Eingabe AWT, Swing, JavaFX & SWT 2
J Swing Wie Fokus richtig setzen? AWT, Swing, JavaFX & SWT 7
T Swing Fokus AWT, Swing, JavaFX & SWT 2
I Swing Wie bekomme ich den Fokus für einen JPanel AWT, Swing, JavaFX & SWT 5
H Swing Problem mit FocusCycleRoot, der FocusTraversalPolicy und dem Fokus AWT, Swing, JavaFX & SWT 2
G Problem beim setzen des Fokus AWT, Swing, JavaFX & SWT 4
E Swing Mit rechter Maustaste Fokus in JList setzen?! AWT, Swing, JavaFX & SWT 3
F Rechte Maustaste auf TreeNode soll den Fokus auf diese setzen AWT, Swing, JavaFX & SWT 6
agent47 Swing auf Schnelltaste ohne Fokus hören AWT, Swing, JavaFX & SWT 2
M JSpinner als TableCellEditor; buttons nur bei fokus sichtbar AWT, Swing, JavaFX & SWT 14
Z Fokus auf Eingabefeld bei showMessageDialog setzen AWT, Swing, JavaFX & SWT 3
N Herkunft des Fokus erkennbar (via Klick oder Tab-Steuerung)? AWT, Swing, JavaFX & SWT 4
F Panel kann nicht Fokus erhalten AWT, Swing, JavaFX & SWT 2
N Textfeld füllen sobald es den Fokus verliert AWT, Swing, JavaFX & SWT 2
D JTable, Model, Fokus AWT, Swing, JavaFX & SWT 3
multiholle AWT Hotkey ohne Fokus AWT, Swing, JavaFX & SWT 6
W JTextArea/TextArea kriegt keinen Fokus AWT, Swing, JavaFX & SWT 6
T Fokus auf CB in Table mit beliebiger Taste AWT, Swing, JavaFX & SWT 12
G JOptionPane.showInputDialog(): Texteingabe und Fokus AWT, Swing, JavaFX & SWT 3
V Kein Fokus für Key Bindings auf JPanel bzw JApplet AWT, Swing, JavaFX & SWT 2
R Fokus von GUI-Elementen AWT, Swing, JavaFX & SWT 3
F Herausfinden, auf welchem Objekt der Fokus liegt AWT, Swing, JavaFX & SWT 2
V JTable verliert Fokus, wie offene Zelle schliessen? AWT, Swing, JavaFX & SWT 5
S Eventhandling obwohl Fenster nicht im Fokus AWT, Swing, JavaFX & SWT 5
GilbertGrape bei "Enter" Funktion ausführen, egal wo der Fokus AWT, Swing, JavaFX & SWT 2
A Fokus in ein Textfeld setzen funktioniert nicht AWT, Swing, JavaFX & SWT 3
A ComboBox soll reagieren ohne fokus AWT, Swing, JavaFX & SWT 7
C Probleme einem JPanel den Fokus zuzuweisen AWT, Swing, JavaFX & SWT 2
A Fokus und JTextField AWT, Swing, JavaFX & SWT 35
T JList mit eigenem TransferHandler: Fokus(?)-Probleme AWT, Swing, JavaFX & SWT 4
D JButton mit Fokus soll auf ENTER reagieren AWT, Swing, JavaFX & SWT 3
M Frame erhält ungewollt den Fokus AWT, Swing, JavaFX & SWT 10
V JTable Handling Fokus on Keystroke und Maus Doubleclick AWT, Swing, JavaFX & SWT 9
S JTextArea mit Scrollbar,append Text mit Fokus? AWT, Swing, JavaFX & SWT 5
G Event, wenn JTextField Fokus verliert? AWT, Swing, JavaFX & SWT 2
C Der hartnäckige Fokus AWT, Swing, JavaFX & SWT 3
G Keylistener/Fokus Problem AWT, Swing, JavaFX & SWT 3
B Fokus Problem unter Linux AWT, Swing, JavaFX & SWT 7
J JFrame und Fokus AWT, Swing, JavaFX & SWT 4
N Fokus Reihenfolge ändern AWT, Swing, JavaFX & SWT 12
M Fokus auf ein JTextfield in einem JDialog setzen AWT, Swing, JavaFX & SWT 6
I fokus AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben