Beliebiges Windows-Programm / Prozess in den Vordergrund bringen

Tom299

Bekanntes Mitglied
Hallo,

beim googlen finde ich immer nur Beispiele, wie man ein Java-Programm in den Vordergrund bringen kann. Bei mir ist es aber so, daß ich ein Java-Programm habe, mit dem ich ein anderes Windowsprogramm bzw. Prozess in den Vordergrund bringen kann.

Weiß jemand, ob und wie dies möglich ist?

Ein Beispiel wäre z.B. daß ein Tradingprogramm läuft und ich in meinem Java-Programm Berechnungen durchführe und wenn ich einen Trade öffnen oder schließen will, muß sichergestellt sein, daß das Trading-Programm im Vordergrund ist, um etwas anklicken zu können.
Gerade wenn man nur 1 Monitor hat, ist sowas auf jeden Fall notwendig, bei 2 Monitoren könnte man das evtl. umgehen.

Jemand eine Idee, Stichwort, Beispielcode?


Gruß,
Tom
 

Java20134

Bekanntes Mitglied
Wenn ein Trade erstellt wird, so muss das ja bestimmt ein JFrame oder so sein. Und das kann man doch in den Hintergrund setzen oder dein Tradingprogramm in den Vordergrund.
Ich verstehe nicht so richtig dein Problem damit!
Java:
JFrame frame; 
frame.alwaysOnTop(true); //Dadurch ist ein JFrame immer in dem Vordergrund
Dafür dass das JFrame in den Hintergrund geriet habe ich noch keine Methode gefunden, aber vielleicht hilft dir der FocusListener: Referenz: java.awt.event.FocusListener
Ich denke mal dass du dann noch ein paar weitere Methoden brauchst, wie requestFocus() oder so.
 

Gucky

Top Contributor
Er meint, er hat ein beliebiges Programm. Ob in Java, C++ oder F# geschrieben ist egal. Und diesen Prozess will er nun in den Vordergrund bringen.

Das geht, wenn überhaupt, nur über die WindowsAPI und Java ist dazu eher ungeeignet. Soll es aber doch Java sein, guck dir mal JNA und JNI an.
In der WindowsAPI gibt es Funktionen, mit denen du dir bestimmte Fenster geben lassen kannst aber ich weiß nicht, ob Microsoft da nicht einen Riegel vorgeschoben hat, um Malware zu verhindern.
 

Tom299

Bekanntes Mitglied
Also ich hatte mir schon angeschaut, wie ich die Windows-Prozesse bzw. IDs mit Java auslesen kann, was aber auch nur über Windows-Umwege geht. Hatte gehofft, es gäbe eine Möglichkeit, den Prozess dann anhand der ID in den Vordergrund zu bringen.
Aber ok, das mit der Windows-API ist eine Idee, die ich mir mal anschaue. Vielleicht gibts ja auch mit .NET eine Möglichkeit, aber da bin ich nicht so vertraut mit.

Danke für die Infos :)
 

Tom299

Bekanntes Mitglied
Ok, ich habs nach einigem rumprobieren hinbekommen, der Tip mit der WindowsAPI hats gebracht :)

Falls es jemand interessiert, hier Beispiel-Code (das ursprüngliche Beispiel minimiert alle Fenster und nach 3s Pause wird alles wieder hergestellt).

Java:
package de.test;
import com.sun.jna.Native;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.win32.W32APIOptions;


public class TestWindow {

	public interface User32 extends W32APIOptions {
		public static final String SHELL_TRAY_WND = "Shell_TrayWnd";
	    public static final int WM_COMMAND = 0x111;
	    public static final int MIN_ALL = 0x1a3;
	    public static final int MIN_ALL_UNDO = 0x1a0;

	    User32 instance = (User32) Native.loadLibrary("user32", User32.class, DEFAULT_OPTIONS);

	    HWND FindWindow(String winClass, String title);

	    long SendMessageA(HWND hWnd, int msg, int num1, int num2);
	    
	    int BringWindowToTop(HWND hWnd);
	    int SetForegroundWindow(HWND hWnd);
	    int SetActiveWindow(HWND hWnd);
	}
	
	public static void main(String[] args) {
		//HWND shellTrayHwnd = User32.instance.FindWindow(User32.SHELL_TRAY_WND, null);
		//HWND shellTrayHwnd = User32.instance.FindWindow("calc.exe", null);
		HWND shellTrayHwnd = User32.instance.FindWindow(null, "Rechner");
		
	    // use it to minimize all windows
	    //User32.instance.SendMessageA(shellTrayHwnd, User32.WM_COMMAND, User32.MIN_ALL, 0);
		//User32.instance.BringWindowToTop(shellTrayHwnd);
		User32.instance.SetForegroundWindow(shellTrayHwnd);	    
		User32.instance.SetActiveWindow(shellTrayHwnd);
		
	    // sleep for 3 seconds
//	    try {
//	    	Thread.sleep(3000);
//	    } 
//	    catch (InterruptedException e) {
//	    
//	    }

	    // then restore previously minimized windows
	    //User32.instance.SendMessageA(shellTrayHwnd, User32.WM_COMMAND, User32.MIN_ALL_UNDO, 0);
	}

}

Vielleicht hier noch der Link zu den beiden JARs: https://github.com/twall/jna/#download
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
buchfrau Anagram für beliebiges Wort Allgemeine Java-Themen 2
O aus Liste ein beliebiges Element auswählen Allgemeine Java-Themen 7
W Listener an ein beliebiges Objekt hänger, der mir Änderung Allgemeine Java-Themen 8
R -jar der Windows-Registry hinzufügen Allgemeine Java-Themen 1
C jar File mehrfach aufrufen (als Windows Dienst) Allgemeine Java-Themen 5
izoards JAR als Windows Service mit Appache Procrun (prunsrv) Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
N iText keine Sonderzeichen und Umlaute unter Windows Allgemeine Java-Themen 13
MarekLanger Filebeat in Docker unter Windows Allgemeine Java-Themen 1
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
M Console geht nicht auf (Windows 10) Allgemeine Java-Themen 3
M TomEE auf Windows Server 2016 installieren Allgemeine Java-Themen 4
Thallius Rätsel für Windows Profis Allgemeine Java-Themen 8
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
J jar Dateien unter Windows 7 mit spezifischer jdk öffnen Allgemeine Java-Themen 2
T Java Windows sounds erkennen Allgemeine Java-Themen 1
P Java als Windows Dienst Allgemeine Java-Themen 2
I GUI für kleine Pop-Ups unter Windows Allgemeine Java-Themen 1
H Änderung im maximalen heap space unter Windows 7 ?! Allgemeine Java-Themen 5
dereki2000 Windows Benachrichtigung erzeugen Allgemeine Java-Themen 2
Neumi5694 Task-Name unter Windows Allgemeine Java-Themen 4
M Checkliste mit erweiterbaren Einträgen, Baumstruktur, wie Windows Explorer Navigation Allgemeine Java-Themen 2
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
R JDK installieren JDK / Maven auf Windows 10 installieren Allgemeine Java-Themen 9
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
D Jsch nur für Windows? Allgemeine Java-Themen 2
X JDK installieren Weiß jemand, wie ich GCJ (WINDOWS) installieren und anwenden kann? Allgemeine Java-Themen 11
D JRE in .jar verpacken unter Windows Allgemeine Java-Themen 4
I Programm im Hintergrund bei Windows zur Steuerung der Tastatur nutzen Allgemeine Java-Themen 2
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
S Executable Jar File startet nicht unter Windows 10 Allgemeine Java-Themen 3
C Windows RCP Application unter Linux bauen lassen Allgemeine Java-Themen 3
E Anwendung verhält sich unter Mac anders als Unter Windows. Allgemeine Java-Themen 4
S JNLP startet seit 1.8.0_31 sehr langsam + Windows-Systemverzeichnis Allgemeine Java-Themen 3
M Windows 98 - Mit welchem JDK (Version) kann noch Programm dafür erstellt werden Allgemeine Java-Themen 6
D Konsoleneingabe ist in Windows CMD nicht sichtbar Allgemeine Java-Themen 4
P Effizientes Programmieren - oder Windows Autostart fürs Herunterfahren Allgemeine Java-Themen 11
O Zugriff auf Windows Zertifikatstore Allgemeine Java-Themen 2
F Windows Umlaute Allgemeine Java-Themen 15
T Windows-Kontextmenü Eintrag hinzufügen? Allgemeine Java-Themen 3
O Socket-Unterschiede zwischen Windows und Ubuntu Allgemeine Java-Themen 2
G Wie installiere ich javax-usb unter windows? Allgemeine Java-Themen 0
M Swing Windows und Ubuntu Allgemeine Java-Themen 4
H JFileChooser soll NUR Windows-Netzwerkumgebung anzeigen Allgemeine Java-Themen 2
L Windows CMD werte Parsen. Allgemeine Java-Themen 2
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
HarleyDavidson Tomcat VS Windows Scheduled Task Allgemeine Java-Themen 4
T JNI: kein Zugriff auf VM in Callback-Methode eines Windows-Hooks Allgemeine Java-Themen 3
W Windows (Service) Hooking Allgemeine Java-Themen 8
M Java auf Linux und Windows Allgemeine Java-Themen 6
R Windows-Firewall lässt Java nicht durch Allgemeine Java-Themen 17
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
N Input/Output Mit Windows 7 erzeugtes zip-File in Java 7 öffnen Allgemeine Java-Themen 5
P Eclipse Unter Windows erstelle .jar unter Linux (Ubuntu) funktioniert nicht Allgemeine Java-Themen 5
R ZIP FileSystem unter Windows wirft exception Allgemeine Java-Themen 7
njans Windows Verknüpfung von Icon Allgemeine Java-Themen 2
P windows mit java bedienen Allgemeine Java-Themen 8
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P .Jar Datein Windows Konsole zugewiesen Allgemeine Java-Themen 3
C Encoding Problem Windows Allgemeine Java-Themen 9
L Input/Output ProcessBuilder und Windows - Konsole verbergen? Allgemeine Java-Themen 5
R Welches User-Verzeichnis wählen für Configurationsdateien - Windows Allgemeine Java-Themen 2
R Änderungen in einem Verzeichnis beobachten - Windows Allgemeine Java-Themen 3
A Nach Benutzerwechsel mit anderem Account in Windows anmelden Allgemeine Java-Themen 8
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
B Windows Konsolenbefehle Allgemeine Java-Themen 3
Z Probleme bei Stringvergleichen (Windows/Linux) Allgemeine Java-Themen 10
B Windows Shutdown abfangen Allgemeine Java-Themen 10
E CMD Registry Key für Windows 7? Allgemeine Java-Themen 9
TiME-SPLiNTER vlcj und Windows Allgemeine Java-Themen 15
S Prozess der von anderem Prozess gestartet wurde beenden? (Windows Bildschirmtastatur) Allgemeine Java-Themen 4
G Input/Output URLDecoder.decode - Unterschiedliche Ergebnisse Windows / Linux Allgemeine Java-Themen 2
R Windows ermitteln ob Administratorrechte vorhanden Allgemeine Java-Themen 17
Y MenuBar -> Windows / Mac OS X Allgemeine Java-Themen 2
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
R Windows - User Passwort ändern Allgemeine Java-Themen 2
F java prog als windows-dienst. Erfahrungen? Allgemeine Java-Themen 2
R Dateien vom Windows-Explorer zum Programm senden Allgemeine Java-Themen 21
H Standard Windows-Druck-Dialog Allgemeine Java-Themen 2
S Windows "öffnen mit..." Allgemeine Java-Themen 4
D Clipboard getSystemSelection() funktioniert unter Windows* nicht Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
P Windows Media Player starten / finden Allgemeine Java-Themen 2
D Windows-Konsole auslesen - Zeichenkodierung Allgemeine Java-Themen 4
J Path-Eintrag unter Windows 7 Allgemeine Java-Themen 11
Q .jar wird mit cmd gestartet - Zuordnung von Dateitypen ändern (Windows 7) Allgemeine Java-Themen 7
G jad JDK1.6 Windows 7 Allgemeine Java-Themen 2
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
Z Probleme mit Java unter Vista/ Windows 7 Allgemeine Java-Themen 12
O Jar-Datei auf Windows 98 Allgemeine Java-Themen 6
K Windows Fehlerkanal -> Ausgabe in Datei Allgemeine Java-Themen 6
M Runtime.getRuntime().exec(cmd); auf windows ... Allgemeine Java-Themen 2
P Runnable Jar File über Windows ausführbar doch über Linux nicht Allgemeine Java-Themen 8
A JavaVM Zeit Windows 7 Allgemeine Java-Themen 9
P USB Temperatursensor auslesen Windows Allgemeine Java-Themen 7
T Mac OS X <--> Windows XP Portierungsprobleme Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben