簡體   English   中英

從Java到前面的窗口

[英]Bring window to front from Java

有沒有辦法使用Java將窗口帶到前面? 也許使用一些操作系統庫?

這似乎是可能的,但那時你的解決方案將是非常特定於操作系統的。

從理論上講,可以通過按以下順序調用win32 API來完成:

  1. FindWindow函數
  2. ShowWindow功能 OR,
  3. BringWindowToTop功能

現在問題來自“如何從java調用它們”。 以上所有函數都在user32.dll中定義, JNA可以訪問它。

使用JNA對user32 API的一些示例引用是:

  1. 如何使用JNI或JNA讀取窗口標題?
  2. 使用java調用User32.dll的FindWindow方法

使用谷歌查找更多。

希望這會有所幫助。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM