Hallo Leute,
ich bin ein Java Anfänger und möchte ein Programm in Java schreiben welches Zugriff auf ein Java Applet im Browser hat. Also es soll dort bestimmte Buttons anklicken können, Werte auslesen etc.
Eine Möglichkeit hab ich schon gefunnden, mi Jpcap also einem Packet Sniffer ist es mir möglich bestimmte Daten "abzufangen" und in meinem Programm zu integrieren. Leider sind in dem Applet auch Daten die ich nicht abfangen kann.
Und wie gesagt möchte ich in dem Java App auch Aktionen ausführen können.
Bisher habe ich das etwas rudimentär mit Java.Robot gemacht, also meine Maus hat sich zu den "Buttons" bewegt und geklickt.
Hat vielleicht jemand eine bessere Idee wie ich da vorgehen kann, das App ansteuern kann?
danke für deine Antwort.
Habe jetzt viel Zeit verbracht eine Lösung zu finden, aber eine andere Möglichkeit als das App mit Robot zu steuern ist viel zu schwierig bzw. unmöglich.
Mit Robot hat es eigentlich auch ganz gut funktioniert, nur leider gibt es noch ein großes Problem.
Das App im Browser öffnet manchmal unvorhergesehen Popups, d.h, wenn ein Popup geöffnet ist verliert das App den Fokus, sodass Robot nicht mehr funktioniert.
Mein Programm muss irgendwie mitbekommen, dass das App den Fokus verloren hat bzw. ein Popup sich geöffnet hat, und dieses schließen.
Gibt es eine Möglichkeit auszulesen welche Fenster gerade in der Taskleiste angezeigt werden?
Ich nutze übrigens Lubuntu
also mit diesem Code bekomme ich schonmal alle Prozesse aufgelistet. (Linux Befehl: "ps -e")
Java:
publicclass test {publicstaticvoidmain(String[] args){try{String line;Process p =Runtime.getRuntime().exec("ps -e");BufferedReader input =newBufferedReader(newInputStreamReader(p.getInputStream()));while((line = input.readLine())!=null){System.out.println(line);//<-- Parse data here.}
input.close();}catch(Exception err){
err.printStackTrace();}}}
Dann gibt es bestimmt unter Linux einen Befehl wie ich alle geöffneten Fenster ausgeben kann?! Hoffentlich ???:L
Das unerwünschte Popup müsste ich so schließen können. Also weiter :rtfm:
Hi Leute ich habe nun nach stundenlanger suche mein Problem gelöst.
Also mein Ziel war es auf einem Linux System das Fenster mit Fokus in mein Java Programm einzulesen.
Dies geschieht mit obigen Code, mit diesem Befehl "xprop -root".
Dann kriege ich die id von dem aktiven Fenster, solange die id ungleich von der id des Java Applets ist führe ich folgenden Befehl aus "xkill -id"
Ich poste das, damit wenn jemand anderes ein ähnliches Problem hat sich die ewig lange Suche sparen kann. :lol:
mfg
Nur noch ein kleiner Nachtrag,
anstelle von "xkill -id ID" benutze ich "wmctrl -ic ID", da xkill das gesamte Applet abschießt.
So nun ist aber genug gesagt. Habe fertig