从Java将窗口置于前端
有没有办法用Java把窗口放在最前面?也许使用一些操作系统库?这似乎是可能的,但是您的解决方案将非常特定于操作系统 理论上,可以按以下顺序调用win32 API:从Java将窗口置于前端,java,dll,window,desktop,Java,Dll,Window,Desktop,有没有办法用Java把窗口放在最前面?也许使用一些操作系统库?这似乎是可能的,但是您的解决方案将非常特定于操作系统 理论上,可以按以下顺序调用win32 API: 或者 现在的问题是“如何从java调用它们?”。以上所有函数都是在user32.dll中定义的,可以通过访问 使用JNA对user32 API的一些示例引用包括: 使用谷歌查找更多信息 希望这会有所帮助。SWT非常适合Win32调用 导入org.eclipse.swt.internal.win32.OS @禁止警告(“限制”)
user32.dll
中定义的,可以通过访问
使用JNA对user32 API的一些示例引用包括:
使用谷歌查找更多信息
希望这会有所帮助。SWT非常适合Win32调用 导入org.eclipse.swt.internal.win32.OS @禁止警告(“限制”) int hwnd=OS.FindWindowW(null,“Titlein.toCharArray())
包聚焦;
导入com.sun.jna.Native;
导入com.sun.jna.platform.win32.WinDef.HWND;
导入com.sun.jna.win32.StdCallLibrary;
公开课预习{
专用接口User32扩展StdCallLibrary{
最终的User32实例=(User32)Native.loadLibrary(“User32”,User32.class);
布尔SetForegroundWindow(HWND句柄);
HWND FindWindowA(字符串类名称、字符串窗口名称);
HWND GetForegroundWindow();
}
私有字符串getWindowName(字符串winName){
字符串winText=“”;
if(winText.contains(winName)){
返回winText;
}
返回null;
}
公共布尔布尔值BringwindofRont(字符串类名称,字符串winName){
HWND HWND=User32.instance.FindWindowA(类名,getWindowName(winName));
if(hWnd==null){
返回false;
}
返回User32.instance.SetForegroundWindow(hWnd);
}
}
请更正标题您能详细说明激活窗口是什么意思吗?我固定了标题,我想他是想把窗口放在前面,但我不确定..如果“windows”是继承了java.awt.window的东西
,toFront
方法将它带到当前JVM中另一个窗口的前面。这是一个无法回答的问题,因为它目前正在编写中。感谢Favonius,我将证明它。您能告诉我们如何知道哪个DLL正在执行哪种函数吗?有办法知道吗?