Strg+V ohne Fokus simulieren!

Sunchezz

Bekanntes Mitglied
Moin!

Nach stundem langen bemühen mit der Suchfunktion bin ich langsam am verzweifeln.
Ich möchte über das Systemclipboard (Windows 7) etwas einfügt. An sich kein Ding, nur soll es nicht in mein Programm eingefügt werden, sondern in ein anderes Fenster (egal welches).

Wie bekomme ich das hin obwohl doch der Fokus weg ist?
Mit der Klasse Robot simuliere ich einen einfachen "Strg+v" anschlag.
Aber nichts passiert.

Hat da jemand eine Idee?
 
V

vanny

Gast
Hmm, is noch leicht schwammig deine Beschreibung.

Wo kommt der Clipboardeintrag her? ..aus deinem Programm? ...oder soll er da rein?
Ohne Strg+C kein Strg+V, um´s mal plump auszudrücken ^^
 

hdi

Top Contributor
nur soll es nicht in mein Programm eingefügt werden

Verstehe ich das richtig, dass du etwas aus dem System Clipboard in ein fremdes Programmfenster einfügen willst? Das ist nicht möglich, du hast aus deinem Programm heraus keinen (solchen) Zugriff auf andere Programme.
 

Sunchezz

Bekanntes Mitglied
Also, der eintrag kommt von meinem Programm: Toolkit.getSystemClipboard().setContents(Transferable x);

und zugriff dachte ich könnte ich irgendwie bekommen, indem ich über Robot einen anschlag von "Strg+V" verursache!?

Und wegen dem Fokus dachte ich das ich den Frame.toBack() setze, und der Thread der einfügen soll, läuft weiter!
Das war so bisher meine idee!
 

hdi

Top Contributor
Naja das Paste-Event an sich kannst du so schon auslösen. Aber solange am anderen Ende nix auf eine Eingabe wartet, passiert auch nix. D.h. wenn das Betriebssystem nichts findet, was grad den Fokus hat und ein Paste entgegennehmen kann (bzw. generell STRG+V), dann läuft's ins Leere.

Du kannst jetzt natürlich mit einem irrsinnigen Workaround anfangen:
createScreenCaputre, dann analysierst du das Bild um herauszufinden wo sich das Fenster bzw. dein Ziel für das Paste auf dem Desktop befindet (Aussehen muss bekannt sein), gefolgt von mouseMove und mousePress. Et voilá, du hast den Fokus. :D
 
Zuletzt bearbeitet:

Sunchezz

Bekanntes Mitglied
das ist klar, doch mit toBack() geht ja mein frame in den Hintergrund, und das nächste fenster bekommt den Fokus, oder seh ich das falsch?
 

hdi

Top Contributor
das ist klar, doch mit toBack() geht ja mein frame in den Hintergrund, und das nächste fenster bekommt den Fokus, oder seh ich das falsch?
Das siehst du falsch. Du müsstest das Fenster schließen: setVisible(false) oder dispose(); Vielleicht ist das nicht mal nötig.. vllt geht's auch ohne das Fenster zu schließen. Aber mit toBack() switcht das OS nicht zum dahinterliegenden Fenster. Das ist ja nur eine optische Änderung, der Prozess hat noch immer den Fokus.
 

Sunchezz

Bekanntes Mitglied
nun gut, doch mit setVisbile(false) scheints auch nich zu gehn!

hier die pasteMethode:
Code:
public void paste(final int index) {
		try {
                        gui.setVisible(false);
			System.out.println("paste: " + copiedObjects.get(index));
			ClipboardHandler.setClipboardCache(copiedObjects.get(index));
			Robot r = new Robot();
			r.keyPress(KeyEvent.VK_CONTROL);
			r.keyPress(KeyEvent.VK_V);
			r.keyRelease(KeyEvent.VK_V);
			r.keyRelease(KeyEvent.VK_CONTROL);
			Start.clipboardHandler.deleteSystemCache();
		} catch (AWTException e) {
			e.printStackTrace();
		}
	}

hier noch setClipboardCache():
Code:
public static void setCache(CopiedObject object) {
		Toolkit.getDefaultToolkit().getSystemClipboard()
				.setContents(object.getTransferable(), null);
	}

und deleteSystemClipboard() die ja eigentlich unrelevant ist:
Code:
public void deleteSystemCache() {
		try {
			Toolkit.getDefaultToolkit().getSystemClipboard()
					.setContents(new Transferable() {
						public DataFlavor[] getTransferDataFlavors() {
							return new DataFlavor[0];
						}

						public boolean isDataFlavorSupported(DataFlavor flavor) {
							return false;
						}

						public Object getTransferData(DataFlavor flavor)
								throws UnsupportedFlavorException {
							throw new UnsupportedFlavorException(flavor);
						}
					}, null);
			clipboardEmpty = true;
			System.out.println("Cache deleted!");
		} catch (IllegalStateException e) {
			e.printStackTrace();
		}
	}
 

hdi

Top Contributor
nun gut, doch mit setVisbile(false) scheints auch nich zu gehn!
Wenn das Fenster verschwindet, bekommt dein Zielfenster den Fokus? Erkennt man meist farblich an der Title Bar des Fensters oben, oder unten beim Task Bar Eintrag, ob das Fenster aktiv ist. Wenn es den Fokus bekommt, ist die nächste Frage: Hat innerhalb dieses Fenster die richtige Komponente den Fokus? Wenn zB ein Textfeld in das du pasten willst in diesem Fenster nicht den Fokus hat geht's natürlich auch nicht.
 
S

Spacerat

Gast
Ich hätt' da ja 'ne irrsinnige Idee mit der zusätzlichen Tastenkombination "Alt-Tab". Wem sie nicht geläufig ist; Sie schaltet in Windows die laufenden Tasks und geöffneten Fenster durch und bringt sie nacheinander in den Vordergrund. Mit "Shift-Alt-Tab" wird das vorhergehende Task/Fenster aktiviert. Vllt. erreichst du ja damit was. Im übrigen reicht es bei einigen Fenstern nicht mal, wenn es den Fokus hat. Z.B. müssen einige Textfelder in diesen noch explizit angewählt werden.
Eine weitere Idee, ebenso irrsinnig, ist die, das Zielfenster per Robot mit der Maus anzuklicken.
 
Zuletzt bearbeitet von einem Moderator:

hdi

Top Contributor
Ja diese Schnapsidee hab ich vorhin ja auch schon angebracht. Aber lassen wir das erstmal :D Technisch funktioniert das schon mit dem Robot, die Frage ist halt inwiefern er sicherstellen kann, oder davon ausgehen muss, dass sein Target den Fokus bekommt.
 

Sunchezz

Bekanntes Mitglied
Ja, diese irrsinigen Ideen hatte ich auch schon^^

allerdings ist ja nicht immer gegeben das bei "Alt-Tab" das richtige fenster kommt. dachte ich zwar bisher immer, das in der reihenfolge immer das letzte wieder als nächstes kommt, doch Windoof hat mich interessanter weise eines besseren gelehrt:
egal was bei mir in der reihenfolge passiert, sobald ich "alt-tab" drücke, kommt bei mir (sollte er denn an sein), der Windoof-Media-Player in den Vordergrund... lustig nicht? -.-
von daher würde ich schon gerne versuchen das irgendwie sauber hinzubekommen, man kann ja nich wissen was andere rechner so für komische macken haben (und nein, immer im fordergrund is nicht angestellt! ;) )

also bei mir macht "shift-alt-tab" nichts anderes als das andere alte^^
bis auf das es die reihenfolge nach wiederholtem drücken nicht durchwürfelt...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
O Maven ein externes jar laden ohne die Applikation neu zu kompilieren Allgemeine Java-Themen 4
Mike80 Processing Programm fiert ohne Arduino ein Allgemeine Java-Themen 2
T Datum OHNE Uhrzeit Zeitzonen-übergreifend Allgemeine Java-Themen 4
N mit sysout, ohne sysout Allgemeine Java-Themen 17
O Programmierprüfung auf moodle ohne Hilfsmittel... Allgemeine Java-Themen 23
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
M Switches ohne String Allgemeine Java-Themen 18
A Java JDK ohne Oracle Konto Allgemeine Java-Themen 5
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
N E-Mail Validator (ohne Regex!) Allgemeine Java-Themen 7
A Java ListNode Element einfügen ohne Bibliothek Allgemeine Java-Themen 6
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
Thallius Zeitzone zu einem LocalDate hinzufügen aber ohne es zu ändern... Allgemeine Java-Themen 2
O Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?` Allgemeine Java-Themen 7
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
X Adjazenzliste ohne ArrayList Allgemeine Java-Themen 6
N Keylistener ohne Dazugehörige Gui Allgemeine Java-Themen 6
P Input/Output entfernte Datei mit Java öffnen ohne Download Allgemeine Java-Themen 5
Kirby.exe Keyboard Input ohne Enter Allgemeine Java-Themen 43
T Abgeleitetes Interface public ohne Schlüsselwort "interface"? Allgemeine Java-Themen 3
S Potenzieren mit rationalen Potenzen ohne Math.pow Allgemeine Java-Themen 16
F Timestamp in Oracle ohne Formatierung reinbekommen Allgemeine Java-Themen 7
M Drucken ohne Dialog Allgemeine Java-Themen 1
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
J .java-Dateitext Compile zur Laufzeit ohne File Allgemeine Java-Themen 15
O Zugriff auf mySQL ohne JDBC Allgemeine Java-Themen 3
S Input/Output Jave.utill.logging ohne Default-Locale also in Englisch Allgemeine Java-Themen 3
J ftp - delete file ohne appache Allgemeine Java-Themen 8
H float Berechnung: Ergebnis ohne wissenschaftliche Notation Allgemeine Java-Themen 5
offi Excel mit Inhalten aus DB öffnen ohne zu speichern Allgemeine Java-Themen 8
E String in Zahl umwandeln, ohne Befehl Integer.parseInt Allgemeine Java-Themen 3
S Java Plugin System (ohne OSGI) Allgemeine Java-Themen 10
G Array ohne Aufzählungszeichen ausgeben Allgemeine Java-Themen 6
Aruetiise Swing JOptionPane ohne denn Thread zu pausieren Allgemeine Java-Themen 1
RalleYTN Audiolänge einer MP3 Datei erhalten ohne diese vollständig zu laden Allgemeine Java-Themen 15
RalleYTN 2D-Grafik Bild ohne AWT, Swing und JavaFX rotieren Allgemeine Java-Themen 12
A BufferedReader ohne System.in Allgemeine Java-Themen 9
E Programm ohne Windowsrand(Vollbild) ? Allgemeine Java-Themen 5
B Applikation ohne (direkt)Java installiert zu haben auszuführen Allgemeine Java-Themen 8
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
OnDemand JavaMail ohne Anhang senden Allgemeine Java-Themen 4
N String ins Clipboard kopieren ohne makieren. Allgemeine Java-Themen 12
T Ziffernsumme ohne String Operatoren Allgemeine Java-Themen 4
E Threads Ausführung in Threads ist langsamer als ohne Threads Allgemeine Java-Themen 13
R NullPointerException Ohne Grund Allgemeine Java-Themen 5
RalleYTN JPEG mit CMYK(ohne JAI oder TwelveMonkeys!) Allgemeine Java-Themen 0
P Zwei ArrayLists: Ohne die eine überhaupt anzurühren, wird sie verändert Allgemeine Java-Themen 2
HarleyDavidson Input/Output Heruntergeladene Datei direkt nach dem Download öffnen ohne zu speichern Allgemeine Java-Themen 1
Y String to Double ohne ParseDouble Allgemeine Java-Themen 11
S Methoden ohne Methodenkopf ?! Allgemeine Java-Themen 5
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
A Linux: Native Library mit Rootrechten ohne Prozess mit sudo zu starten Allgemeine Java-Themen 1
T Threads Input/Output im Thread - Datei ohne Inhalt Allgemeine Java-Themen 1
A Konstrukt ohne Main für Xml-Parser Allgemeine Java-Themen 1
S Performante Visualisierung groẞer Datenmengen (ohne JFreeChart) Allgemeine Java-Themen 22
M Permutation ohne Wiederholung mit rekursion Allgemeine Java-Themen 4
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
F File.listFiles ohne .sort Allgemeine Java-Themen 6
H Unicode ausgeben ohne Umwandlung - geht das? Allgemeine Java-Themen 3
L iText PDF-Generierung ohne Speichern Allgemeine Java-Themen 10
R Wie schaffe ich es, dass java zB 100 zählt ohne ständig "else if" hinschreiben zu müssen? Allgemeine Java-Themen 7
T Zwei Wortendungen vergleichen ohne .equals Allgemeine Java-Themen 10
J Array ohne vorher festgelegte Länge oder Wie wandle ich Zahlen in Zahlen mit anderen Basen um? Allgemeine Java-Themen 6
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
T Programm bleibt ohne Fehler stehen Allgemeine Java-Themen 4
J log4j ohne propertiedatei Allgemeine Java-Themen 4
D Classloader ohne Package Allgemeine Java-Themen 10
A Collections Array-Elemente in ArrayList kopieren ohne Schleife Allgemeine Java-Themen 7
K print() geht nicht ohne println() Allgemeine Java-Themen 3
S KeyListener ohne Focus - Wie? Allgemeine Java-Themen 2
Rudolf JUnit4-Testklasse erweitern ohne zu vererben Allgemeine Java-Themen 6
W Passwort Clientseitig sicher ablegen ohne Hash Allgemeine Java-Themen 2
S Antlr Grammatik übersetzt ohne Fehler, dennoch wird Zahl nicht als Eingabe erkannt Allgemeine Java-Themen 4
A Java ohne Java-Installation? Allgemeine Java-Themen 5
H Apache POI HSSF - Farbe/Rahmen etc. ohne Style-Vorlage? Allgemeine Java-Themen 4
E KeyListener ohne GUI Allgemeine Java-Themen 6
Guybrush Threepwood Pattern gesucht: Punkt ohne Leerzeichen dahinter Allgemeine Java-Themen 3
S Entfernen von allen Nicht-Buchstaben chars aus einem String ohne Regex..? Allgemeine Java-Themen 10
K Vererbung ohne Basisklasse zu kennen Allgemeine Java-Themen 20
B File umbennen ohne Extension zu aendern Allgemeine Java-Themen 2
J Laden von JAR Files geht ohne ADMIN Rechte sehr langsam Allgemeine Java-Themen 6
A Methoden ohne Referenzen finden Allgemeine Java-Themen 9
P Tastatur abfrage ohne KeyListener Allgemeine Java-Themen 3
L JAR verändern - JAVAC soll einfach nur kompilieren, ohne Prüfungen Allgemeine Java-Themen 16
S auf public void Methode zugreifen ohne static Allgemeine Java-Themen 11
N Guice - Ohne injector.getInstance Allgemeine Java-Themen 2
S Datei aus zip öffnen ohne zip zu entpacken Allgemeine Java-Themen 4
J Rechtsverschiebung OHNE Vorzeichenerweiterung Allgemeine Java-Themen 2
R Input/Output Objekte speichern ohne überschreiben Allgemeine Java-Themen 7
T Pascalsches Dreieck ohne array und rekursion Allgemeine Java-Themen 9
T String in Date parsen (*ohne* bekanntes Format) Allgemeine Java-Themen 8
S Wörter ohne Leerzeichen erkennen Allgemeine Java-Themen 5
W Input/Output Drucken ohne GUI Allgemeine Java-Themen 11
M Klassen Zugriff auf getMethode ohne Klasse zu erzeugen Allgemeine Java-Themen 6
Kr0e Reflection - Instanz einer Klasse erstellen, ohne Default-Constructor Allgemeine Java-Themen 15
B NullPointerException ohne Angabe Allgemeine Java-Themen 5
P Threads Thread innerhalb einer Klasse - ohne Extra Klasse Allgemeine Java-Themen 9
T Firefox und Webstart: Ohne JNLP Download Allgemeine Java-Themen 2
F Multidimensionales Array ohne linare Reihenfolge! Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben