[英]Bring window to front from Java
有沒有辦法使用Java將窗口帶到前面? 也許使用一些操作系統庫?
這似乎是可能的,但那時你的解決方案將是非常特定於操作系統的。
從理論上講,可以通過按以下順序調用win32 API來完成:
現在問題來自“如何從java調用它們”。 以上所有函數都在user32.dll
中定義, JNA可以訪問它。
使用JNA對user32 API的一些示例引用是:
使用谷歌查找更多。
希望這會有所幫助。
SWT很適合Win32調用。
import org.eclipse.swt.internal.win32.OS;
@SuppressWarnings( “限制”)
int hwnd = OS.FindWindowW(null,“Titlein”.toCharArray());
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); } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.