Name des aktuell aktiven Windows-Fensters abfragen?

Status
Nicht offen für weitere Antworten.
J

Jack Gruber

Gast
Hallo allerseits,

ich habe ein kleines Problem und hoffe, dass ihr mir weiterhelfen könnt. Ich habe ein Java-Programm geschrieben, dass ein anderes Windows-Programm über eine Folge von Tastatur-Eingaben kontrolliert. Dazu habe ich den AWTRobot verwendet, der zunächst ein Alt-Tab-Signal erzeugt, so dass der Fokus vom aktuell aktiven Java-Programm zum nächsten Windows-Programm wechselt. Dort werden dann die weiteren generierten Tastatur-Eingaben ausgeführt. Es funktioniert auch alles prima.

Um das Ganze aber ein wenig sicherer zu gestalten, würde ich gerne eine Sicherheitsabfrage einbauen, die überprüft, ob das aktuell aktive Programm auch wirklich das gewünschte, zu kontrollierende Programm ist. Und zusätzlich wäre es auch nicht schlecht, wenn ich überprüfen könnte, ob das zu kontrollierende Programm einen bestimmten Dialog geöffnet hat (welcher mir zum Beispiel signalisiert, dass eine bestimmte Aufgabe von dem Programm fertig gestellt wurde).

Gibt es für dieses Problem eine Java-Klasse oder muss ich da über JNI auf C-Bibliotheken zugreifen?


Zusätzlich würde es mich noch interessieren, ob ich bestimmte Tastatur-Eingaben, die während des Programm-Ablaufs auftreten, abfangen kann. Sozusagen als weitere Sicherungs-Maßnahme: Drückt der Benutzer Escape, während der Robot seine Tastatur-Eingaben generiert, dann soll das Programm sofort anhalten. Gibt es hierfür einen "globalen" Event-Listener oder muss/kann ich über die EventQueue sowas abfangen?
 

thE_29

Top Contributor
Das mit dem Programmfensternamen geht nur über JNI und der WinApi Funktion FindWindow.

Und beim anderen, weiß ich net ganz was du meinst!

Esc wird normal geschickt wie alle anderen Tasten auch, also müßtest du das normal abfangen können (bei so Tastatur programmen, ist C/C++ allerdings besser!)
 
J

Jack Gruber

Gast
Danke für die Antwort. Dann muss ich mich wohl in das Thema JNI einlesen :? .

Bei der anderen Geschichte kann ich die Tastatur-Eingaben ja nicht über das Java-Programm "abfangen", da das Java-Programm ja nicht das aktive Fenster ist, sondern das Programm, was von dem Java-Programm gesteuert wird.

Wenn ich zum Beispiel das "Malprogramm" Paint steuern möchte und mein Java-Programm malt jetzt automatisch irgendein Bild auf der Paint-Oberfläche. Dann werden Tastatur-Eingaben, die ich tätige, nicht vom Java-Programm "empfangen", sondern diese landen bei Paint, da Paint ja das aktuell aktive Programm ist.
 

thE_29

Top Contributor
Jo und mit C++ kannst du aber alles abfangen, weil du direkt auf die MESSAGE_MAP von Windows zugreifen kannst und somit könntest du alle Tasten abspeichern oder auch Masubewegungen!

Sprich das könntest du auch über JNI lösen!
 
J

Jack Gruber

Gast
Ok cool, thx. Dann werde ich mich da wohl mal schlau machen müssen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Name des aktuellen Programms Allgemeine Java-Themen 7
L Ist ein string ein erlaubter variabel name? Allgemeine Java-Themen 2
S Variable als Objekt Name Allgemeine Java-Themen 3
J Apache POI - No external workbook with name Allgemeine Java-Themen 5
Neumi5694 Task-Name unter Windows Allgemeine Java-Themen 4
1 Name Generator für Videos Allgemeine Java-Themen 1
E Webservice zur Konvertierung IBAN/BIC -> Bank Name Allgemeine Java-Themen 1
P Name der Parent Klasse abfragen Allgemeine Java-Themen 8
D Name eines Nicht-String Objekts ausgeben Allgemeine Java-Themen 4
S Name einer Musikdatei auslesen und ändern Allgemeine Java-Themen 8
J IMDB Name und Bewertung auslesen Allgemeine Java-Themen 10
J .txt erstellen, nach name der vorhergehenden txt Allgemeine Java-Themen 7
J Suche: Tool zum Auffinden gleichnamiger Klassen (Name und Package gleich) in unteschiedlichen JARs Allgemeine Java-Themen 5
P ActionListener / Label Name auslesen Allgemeine Java-Themen 2
S java -jar name.war. Wie Extraktionspfad umbiegen? Allgemeine Java-Themen 2
S [JUnit] Name von TestCase bekommen Allgemeine Java-Themen 4
D Passende Name für Methoden finden Allgemeine Java-Themen 3
Dit_ Registry, Preferences | Name des Knotens ändern. Allgemeine Java-Themen 2
E String name in class convertieren Allgemeine Java-Themen 4
E Variablen anderer Klassen auslesen (nur Name bekannt) Allgemeine Java-Themen 4
S Konstrukt Sinn, Zewck und Name Allgemeine Java-Themen 6
Ark Name für Funktion gesucht Allgemeine Java-Themen 5
D variabler Listen name Allgemeine Java-Themen 3
M Name der Swing Komponente Allgemeine Java-Themen 3
C Name einlesen und Programm starten Allgemeine Java-Themen 2
S "Guessed User name" bei Tomcat belegen Allgemeine Java-Themen 2
J Name eines Strings durch einen String festlegbar? Allgemeine Java-Themen 2
M Name von Wochentagen vergleichen Allgemeine Java-Themen 3
M Zugriff auf Objekt, Name in Variable Allgemeine Java-Themen 3
F Welcher Name? paintsXY(), isPaintXY(), isPaintingXY() . Allgemeine Java-Themen 4
V Objekt einer Klasse, deren Name nur als String vorhanden Allgemeine Java-Themen 4
D Name der Java-Applikation Allgemeine Java-Themen 2
A Class File zur Laufzeit laden ohne den Binary Name zu kennen Allgemeine Java-Themen 11
G jar-Name einer Klasse Allgemeine Java-Themen 9
O String übergeben ist name eines JTextField wie zugreifen Allgemeine Java-Themen 9
S Name der ausführenden jar-Datei abfragen Allgemeine Java-Themen 11
Y fehler: wrong name serverA Allgemeine Java-Themen 3
F Parameter Name herausfinden Allgemeine Java-Themen 25
H Package name aus Class-File auslesen Allgemeine Java-Themen 11
P Duplicate name in Manifest Allgemeine Java-Themen 6
T JUSB - Name des USB Endgerätes zurückgeben Allgemeine Java-Themen 2
L Systeminformationen (PC-Name und Kennwort) auslesen Allgemeine Java-Themen 9
B Name eines komischen Klassenkonstruktes Allgemeine Java-Themen 14
S Sortierung einer Collection nach dem Attribut "name&quo Allgemeine Java-Themen 3
S Bookmark HTML Datei einlesen, alle Links erhalten und manche editieren..? (aktuell JSoup) Allgemeine Java-Themen 4
Z Welches GUI Framework für Java ist aktuell? Allgemeine Java-Themen 16
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
L Aktuell angezeigtes Drucken Allgemeine Java-Themen 8
G Java Cryptography Extension (JCE) mit Java 1.6 noch aktuell? Allgemeine Java-Themen 1
F JSP noch aktuell? Allgemeine Java-Themen 5
I ArrayList mit einem aktiven Element Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben