Get window forward with Java

Is there a way to bring a window to the forefront using Java? Maybe using some operating system library?

+4
source share
3 answers

It seems to be possible, but then your solution will be very OS specific.

Theoretically, this can be done by placing a call to the win32 API in the following sequence:

Now the problem is "how to call them from java?". Well, all of the above functions are defined in user32.dll , and JNA can access it.

Some examples of user32 API references using JNA:

Use Google to find more.

Hope this helps.

+3
source

SWT is good for Win32 calls.

import org.eclipse.swt.internal.win32.OS;

@SuppressWarnings ("restriction")

int hwnd = OS.FindWindowW (null, "Titlein" .toCharArray ());

0
source

 package focus; import com.sun.jna.Native; import com.sun.jna.platform.win32.WinDef.HWND; import com.sun.jna.win32.StdCallLibrary; public class ForegroundWindow { private interface User32 extends StdCallLibrary { final User32 instance = (User32) Native.loadLibrary("user32", User32.class); boolean SetForegroundWindow(HWND handle); HWND FindWindowA(String className, String windowName); HWND GetForegroundWindow(); } private String getWindowName(String winName) { String winText = ""; if (winText.contains(winName)) { return winText; } return null; } public boolean bringWindowToFront(String className, String winName) { HWND hWnd = User32.instance.FindWindowA(className, getWindowName(winName)); if (hWnd == null) { return false; } return User32.instance.SetForegroundWindow(hWnd); } } 
0
source

Source: https://habr.com/ru/post/1332503/


All Articles