- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在激活桌面窗口时遇到问题。
我采取了以下方法
1: GetDesktopWindow 获取桌面句柄(有效)我尝试了以下方法将桌面窗口置于顶部,但它们没有用。
SetForegroundWindow
SwitchToThisWindow
ShowWindow
BringWindowToTop
我做错了什么吗?或者无法使用 jna 显示桌面?
最佳答案
一种方法是获取任务栏的句柄并向其发送一条消息以隐藏所有窗口,也许像这样的方法在 Windows 7 上对我有用:
import com.sun.jna.Native;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.win32.W32APIOptions;
public class ToggleDesktop3 {
public interface User32 extends W32APIOptions {
public static final String SHELL_TRAY_WND = "Shell_TrayWnd";
public static final int WM_COMMAND = 0x111;
public static final int MIN_ALL = 0x1a3;
public static final int MIN_ALL_UNDO = 0x1a0;
User32 instance = (User32) Native.loadLibrary("user32", User32.class,
DEFAULT_OPTIONS);
HWND FindWindow(String winClass, String title);
long SendMessageA(HWND hWnd, int msg, int num1, int num2);
}
public static void main(String[] args) {
// get the taskbar's window handle
HWND shellTrayHwnd = User32.instance.FindWindow(User32.SHELL_TRAY_WND,
null);
// use it to minimize all windows
User32.instance.SendMessageA(shellTrayHwnd, User32.WM_COMMAND,
User32.MIN_ALL, 0);
// sleep for 3 seconds
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
// then restore previously minimized windows
User32.instance.SendMessageA(shellTrayHwnd, User32.WM_COMMAND,
User32.MIN_ALL_UNDO, 0);
}
}
看起来还有另一种方法可以通过 Shell32 库调用(涉及 ToggleDesktop 函数的东西——对于 C# 版本,查看这个 SO link ),但我还没有让它工作。
关于java - jna getDesktop bringWindowToTop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7697395/
我正在尝试使用 Java 的 Desktop/getDesktop()/open() 调用通过系统的默认编辑器打开一个文本(简单 ASCII)文件。我正在使用 FileWriter/PrintWrit
我在激活桌面窗口时遇到问题。 我采取了以下方法 1: GetDesktopWindow 获取桌面句柄(有效)我尝试了以下方法将桌面窗口置于顶部,但它们没有用。 SetForegroundWind
我正在开发一个应用程序,如果用户点击一个链接,我希望它在他们的默认浏览器中打开。从我读过的内容来看,这在理论上应该可行,但是,当在 Linux(特别是 Linux Mint 17.1)上运行时,它会挂
当我尝试调用 Desktop.getDesktop().open() 时,我的程序崩溃了。 我使用的是 Ubuntu GNOME 16.10,运行的是 Gnome 3.20.4。我还没有机会在另一个平
这个问题已经有答案了: Can Java's Desktop library launch a URL in a new Browser Tab or Window? (5 个回答) 已关闭 8 年前
我有一个配置文件: PropertiesConfiguration conf = new PropertiesConfiguration("config/conf.file") 其中包含一个带有文件路
在 Java 中,如何启动邮件客户端以及作为其附件的给定文件 - 特别是使用方法 Desktop.getDesktop().mail(URI) 我使用的是 Windows 7 并想启动 MS Outl
从 Java 6 开始有一个类 java.awt.Desktop。有一些不错的方法,但并非所有平台都支持该类。方法java.awt.Desktop.getDesktop()抛出一个 java.lang
我有这段代码: public void openSelectedFiles(MouseEvent mouseEvent){ ListView listView = (ListView) ((N
我有一个 Java 应用程序,当我使用 java.awt.Desktop 时: Desktop.getDesktop().open(file); 它在 Windows 上运行良好(在我的默认程序中打开
我们正在尝试做的事情:我们正在尝试将现有的 Java 桌面应用程序复制到 Android 应用程序(也基于 Java)。桌面应用程序使用以下桌面类代码来打开传递给它的任何形式的文件类型(例如 docx
通过调用Desktop.getDesktop().edit(File myFile)打开/编辑文件时是否可以以某种方式跟踪当前文件状态? 我的目标是在许多用户之一正在编辑文件时锁定共享文件(存储在公共
我有一个 jar 文件 file.jar,它需要一个包含 jar 所在位置旁边的图片的文件夹。该程序加载图片并显示它们。 双击或java -jar file.jar工作正常,但如果我尝试用另一个jav
考虑这个代码片段: import java.awt.*; import java.io.*; public class V { public static void main(String[]
(我不确定这里是否是问这个问题的正确地点。请移至合适的站点) 我有一个问题,显示在下面的代码中。它不适用于装有 CITRIX Xen App 6- 的机器 (windows 2008)。没有错误,只是
我试过谷歌搜索,但找不到答案。我正在编写一个纯 Java 桌面应用程序。帮助系统通过使用 Desktop 类浏览功能并为其提供 URI 来启动。当我添加“?”时,URI 在 Java 中失败。我想将程
嗨,我有一个 Linux 实例,我正在使用桌面类。代码: String path = request.getParameter("path"); try {
在java中,我尝试使用Desktop.getDesktop().open(File file)打开一个文件,但它抛出IOException,尽管Desktop.getDesktop().isSupp
我是一名优秀的程序员,十分优秀!