Fenster suchen und Verschieben

Status
Nicht offen für weitere Antworten.

ARadauer

Top Contributor
Hi,
ich brauch eine Klasse mit der ich Fenster von anderen Programmen suchen kann und diese vielleicht auch verschieben kann.
Ist wahrscheinlich nur mit jni möglich. Ich hab jetzt aber ehrlich gesagt nicht die Zeit und die Nervern, dass ich mir in C++ Teile dafür schreibe un diese dann über Java anspreche. Gibt es vielleicht schon fertige C++ Klassen mit denen ich sowas machen kann. Ich denk, dass ich nicht der erste bin der mit Java sowas vor hat. Das hat ja sicher schon mal wer gemacht.

Kennt da jemand was?
 

ARadauer

Top Contributor
Ich muss hier nochmal nachhacken, bin noch zu keiner sinnvollen lösung gekommen.

Ein Fenster einer fremden Anwendung popt auf, ich muss nun den Titel auslesen und das Fenster an eine bestimmte Stelle verschieben...

wie mach ich das? Hat keiner von euch einen Ansatz?
 

Marco13

Top Contributor
ARadauer hat gesagt.:
Ich muss hier nochmal nachhacken,
:D
Ich bin ziemlich sicher, dass das nur mit JNI geht (aber wie man das nun in C++ umsetzt, müßte ich auch erst nachsehen...). Sowas wie http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Frame.html#getFrames() bringt ja für nicht-Java-Anwendungen auch nichts.... Ob das ganze vielleicht mit sowas wie https://jna.dev.java.net/ einfacher werden würde, müßte man sich ansehen, aber u.U. wäre der Aufwand sogar geringer, wenn man sich die (wenigen) benötigten Funktionen selbst schreiben würde....
 

ARadauer

Top Contributor
ok dann werd ich wohl meine alten c unterlagen nochmal vorkramen...

hab zur zeit kein vs drauf und will mir das auch nicht installieren, schon mal wer mit eclipse c/c++ entwickelt ist das zu emfehlen? oder kann mir jemand eine andere ide für eine kleine dll emfpehlen?
 

ARadauer

Top Contributor
Ich habs jetzt mit JNA geschafft, war aber finde ich, nicht sehr einfach....

ich habe jetzt zusätzlich zum jna.jar noch die samples.jar eingebunden, dann gings leichter, da schon viele Dinge wie zb HWND vorhanden waren.. trotzdem sind in den Beispieldatein auch noch nicht alle Methoden die man in der MSDN findet drinnen...., hab dann nochmal ein Interface (User32B) erstellt dass von User32 erbt.

das byte array von den nativen Methoden hat mir auch noch Probleme bereitet.. gibts da eine bessere Lösung? wie man ein byte[] in ein String umwandelt?

hier mein Beispiel:
Code:
package at.pb.main;

import java.util.ArrayList;

import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.examples.win32.GDI32;
import com.sun.jna.examples.win32.User32;
import com.sun.jna.examples.win32.GDI32.RECT;
import com.sun.jna.examples.win32.User32.WNDENUMPROC;
import com.sun.jna.examples.win32.W32API.HWND;

public class WindowObserver {

	private static ArrayList<Fenster> fenster;

	public static ArrayList<Fenster> getOpenWindows() {
		fenster = new ArrayList<Fenster>();
		User32B user32 = User32B.INSTANCE;	
		user32.EnumWindows(new WNDENUMPROC() {

			public boolean callback(HWND hwnd, Pointer arg1) {
				User32B user32 = User32B.INSTANCE;
				if(user32.IsWindowVisible(hwnd)){
					byte[] name = new byte[512];
					user32.GetWindowText(hwnd, name, name.length);
					Fenster f = new Fenster();
					f.setName(byte2String(name));
					RECT r  = new GDI32.RECT();
					user32.GetWindowRect(hwnd,r);
					f.setRectangle(r.toRectangle());
					fenster.add(f);
				}			
				return true;
			}
		}, null);
		return fenster;

	}

	public static String byte2String(byte[] array) { 
		char[] charray = new char[array.length/2]; 
		int c=0;
		for (int i=0;i<charray.length;i=i+2) 
		{ 
			Byte bt = new Byte(array[i]); 
			char ch = (char)bt.intValue();
			if(ch==0){
				break;
			}
			charray[c]=ch;
			c++;
		} 
		String str = new String (charray);  
		return str.substring(0, c);
	} 

	public interface User32B extends User32{

		User32B INSTANCE = (User32B) Native.loadLibrary("user32", User32B.class, DEFAULT_OPTIONS);

		boolean IsWindowVisible(HWND hWnd);

	}
}

hat jemand von euch schon mal jna gearbeitet? ich würd da gerne noch ein paar beispiele sehen...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
A Zusammenspiel javafx Fenster Allgemeine Java-Themen 1
M StdDraw-Fenster schliessen Allgemeine Java-Themen 1
D Klassen 2 Fenster in GUI Allgemeine Java-Themen 3
H Hilfe bei Erstellung eines Hilfe Fenster bei Tastendruck (F1 bei Win98) Allgemeine Java-Themen 5
T Fenster schließen verhindern Allgemeine Java-Themen 13
C Durch klicken von Button in GUI wird leeres Fenster geöffnet und nicht mein Spiel "Memory" Allgemeine Java-Themen 13
K Interface Fenster mit Regler Allgemeine Java-Themen 2
S BMI Rechner mit eclipse Visual Editor (Seperates Fenster) Allgemeine Java-Themen 7
F Fenster schließen bei Klick auf Kreuz Allgemeine Java-Themen 14
P Herausfinden, ob ein Process ein Fenster hat Allgemeine Java-Themen 1
K Doppeltes Fenster Allgemeine Java-Themen 3
F DOS-Fenster unterdrücke? Allgemeine Java-Themen 0
A Anderes Fenster neu laden Allgemeine Java-Themen 16
B Geöffnetes Fenster verifizieren Allgemeine Java-Themen 2
T LookAndFeel Java Skinning Fenster Allgemeine Java-Themen 13
M CapsLock abfragen wenn Fenster wieder aktiviert wird Allgemeine Java-Themen 5
E Prüfen ob Fenster mit Namen offen ist Allgemeine Java-Themen 2
N verdeckte Fenster werden im Vordergrund gezeichnet Allgemeine Java-Themen 6
N Fenster lädt nicht Allgemeine Java-Themen 28
J Zugriff auf Poker-Client Fenster Allgemeine Java-Themen 14
A Erkennen welches Fenster bei windowDeactivated aktiviert wird? Allgemeine Java-Themen 2
S Frage für ein popup Fenster Allgemeine Java-Themen 4
J Swing Wird invisible, nicht-ref. Fenster vom GC entfernt? Allgemeine Java-Themen 11
Z Fenster vergrößern und verkleiern Allgemeine Java-Themen 14
S Fenster "verschwindet" nicht, trotz setVisible(false); Allgemeine Java-Themen 22
A Zeichen beim Eingeben in ein DOS-Fenster nicht anzeigen? Allgemeine Java-Themen 3
J X11 app in Java Fenster Allgemeine Java-Themen 4
R Von Java aus Browser Fenster oeffnen und Webseite ausgeben? Allgemeine Java-Themen 2
H Fenster focus Allgemeine Java-Themen 5
Escorter .jar Datei Classpath mitgeben ohne Dos Fenster Allgemeine Java-Themen 8
G Keyboard Shortcut (bei nicht aktivem fenster) Allgemeine Java-Themen 2
Steev Screenshot vom Bereich behind dem aktuellen Fenster machen Allgemeine Java-Themen 24
D Welches Fenster ist im moment aktiv? Allgemeine Java-Themen 11
T Java Fenster Allgemeine Java-Themen 5
C Fenster öffnen Allgemeine Java-Themen 4
P Login- Fenster Allgemeine Java-Themen 11
B kleines modales transparents Fenster ohne rahmen und buttons Allgemeine Java-Themen 15
J text aus externem fenster lesen Allgemeine Java-Themen 3
F neues fenster Allgemeine Java-Themen 3
P JTabbedPane Fenster minimieren Allgemeine Java-Themen 15
K Warten auf die Eingabe aus Fenster.... Allgemeine Java-Themen 2
M neue Thread in neuem Fenster Allgemeine Java-Themen 3
MQue Fenster aufklappen Allgemeine Java-Themen 3
C Fenster blinken lassen Allgemeine Java-Themen 2
T Explorer-Fenster öffnen mit Java Allgemeine Java-Themen 9
S Windows Fenster finden Allgemeine Java-Themen 9
E Wie bekomme ich mein Image in das Fenster Allgemeine Java-Themen 2
E Mit Button ein Fenster öffnen Allgemeine Java-Themen 4
G Java Fenster öffnen nach Iconklick(desktop) (helppls) Allgemeine Java-Themen 3
G Das aktuelle Fenster drucken Allgemeine Java-Themen 13
G mehrere JPanels als Fenster benutzen Allgemeine Java-Themen 3
M ALT-F4 fenster schließen unterdrücken Allgemeine Java-Themen 2
S Swing - Problem mit Fenster-/Komponenten-Größe Allgemeine Java-Themen 3
M 2 verschiedene LookAndFeels in einem Fenster möglich? Allgemeine Java-Themen 6
G Leere Fenster (Keine Schrift, Reiter/ Buttons) bei Java Allgemeine Java-Themen 5
F Fenster friert ein! Allgemeine Java-Themen 2
K JAVA Fenster-Modi Allgemeine Java-Themen 5
S fenster umbenennen Allgemeine Java-Themen 4
J Fenster aufpopen lassen? Allgemeine Java-Themen 8
N Java Fenster schließen Allgemeine Java-Themen 2
B JNI: HWND von aufrufendem Fenster bekommen. Allgemeine Java-Themen 4
W Fenster (EXCEL) aktivieren Allgemeine Java-Themen 6
J Fenster mit paint Methode selbst zeichnen Allgemeine Java-Themen 3
G Fenster verbinden (docken) Allgemeine Java-Themen 4
G Fenster/Frame schließen Allgemeine Java-Themen 16
L Windows-Fenster "Arbeitsplatz" anzeigen Allgemeine Java-Themen 13
G Auf KeyEvent reagieren, wenn das Fenster nicht aktiv ist Allgemeine Java-Themen 8
C alle Fenster bleiben grau Allgemeine Java-Themen 4
G Fenster durch eigenen Button minimieren Allgemeine Java-Themen 6
T Methoden Farbe auf Screenshot suchen Allgemeine Java-Themen 2
L 2 Dimensionale ListArray Abfrage nach einem Wert suchen Allgemeine Java-Themen 5
LimDul Suchen in Stringlisten Allgemeine Java-Themen 4
J Suchen von einer Scannereingabe in einem HashSet Allgemeine Java-Themen 1
ralfb1105 Blöcke aus Datei filtern/suchen und in neue Datei schreiben Allgemeine Java-Themen 10
K Bild in einem anderen Bild suchen Allgemeine Java-Themen 12
I Text suchen und ersetzen im Word Dokument Allgemeine Java-Themen 3
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
H Collections Tupel suchen Allgemeine Java-Themen 20
Meeresgott Erste Schritte Sourcetree - Git | Suchen eines Commits Allgemeine Java-Themen 2
C Zeilen-"Vektor" aus Excel-Tabelle suchen Allgemeine Java-Themen 0
I Muster in Array suchen Allgemeine Java-Themen 10
K Auf einer Website nach einem String suchen Allgemeine Java-Themen 5
thet1983 nach teilen eines Dateinamens suchen Allgemeine Java-Themen 6
W Arraylist Text Suchen und Datei löschen Allgemeine Java-Themen 5
M lucene suchen/löschen/hinzufügen Allgemeine Java-Themen 4
W Sortierte Listen - Methode suchen Allgemeine Java-Themen 17
Iron Monkey Mit Regex nach Beträge suchen Allgemeine Java-Themen 4
R In einem Byte-Array nach einer gewissen Zahlenfolge suchen Allgemeine Java-Themen 7
M Objekt aus Liste in Liste suchen/löschen Allgemeine Java-Themen 6
E nach dem Ordner suchen, wo .jar datei sich befindet Allgemeine Java-Themen 17
E Objekte in einer Liste suchen. Allgemeine Java-Themen 4
S Doppelte Werte in Listen,Vectoren etc suchen Allgemeine Java-Themen 2
S Nach Fehler und schlechtem Programmierstiel suchen: Allgemeine Java-Themen 5
V Über Java in einem Forum einloggen/ suchen? Allgemeine Java-Themen 10
M Suchen und Ersetzen? Allgemeine Java-Themen 4
G bestimmte Files suchen Allgemeine Java-Themen 2
G Wort am Bildschirm -- Koordinaten suchen Allgemeine Java-Themen 2
M Sonderzeichen in String suchen Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben