如何find正在运行的应用程序处于使用Java的最小化状态?

如何find所有在Windows桌面上运行的应用程序处于最小化状态使用Java?

您需要先下载 jna.jarplatform.jar并将它们添加到您的类路径中。 您可以通过查看MSDN文档来计算出Windows系统调用。

这里是枚举所有最小化窗口的代码:

import com.sun.jna.Native; import com.sun.jna.Pointer; import com.sun.jna.platform.win32.WinDef.HWND; import com.sun.jna.platform.win32.WinUser.WINDOWINFO; import com.sun.jna.platform.win32.WinUser.WNDENUMPROC; public class Minimized { private static final int MAX_TITLE_LENGTH = 1024; private static final int WS_ICONIC = 0x20000000; public static void main(String[] args) throws Exception { User32.EnumWindows(new WNDENUMPROC() { @Override public boolean callback(HWND arg0, Pointer arg1) { WINDOWINFO info = new WINDOWINFO(); User32.GetWindowInfo(arg0, info); // print out the title of minimized (WS_ICONIC) windows if ((info.dwStyle & WS_ICONIC) == WS_ICONIC) { byte[] buffer = new byte[MAX_TITLE_LENGTH]; User32.GetWindowTextA(arg0, buffer, buffer.length); String title = Native.toString(buffer); System.out.println("Minimized window = " + title); } return true; } }, 0); } static class User32 { static { Native.register("user32"); } static native boolean EnumWindows(WNDENUMPROC wndenumproc, int lParam); static native void GetWindowTextA(HWND hWnd, byte[] buffer, int buflen); static native boolean GetWindowInfo(HWND hWnd, WINDOWINFO lpwndpl); } }