有没有办法使用Java将窗口带到前面?也许使用一些操作系统库?
答案 0 :(得分:3)
似乎有可能,但那时你的解决方案将非常适合操作系统。
理论上可以通过按以下顺序调用win32 API来完成:
现在问题是'如何从java调用它们?'。以上所有功能都在user32.dll
中定义,可由JNA访问。
使用JNA对user32 API的一些示例引用是:
使用谷歌查找更多内容。
希望这会有所帮助。
答案 1 :(得分:0)
SWT很适合Win32通话。
import org.eclipse.swt.internal.win32.OS;
@SuppressWarnings( “限制”)
int hwnd = OS.FindWindowW(null,“Titlein”.toCharArray());
答案 2 :(得分:0)
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);
}
}