加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 19:20:13 所属栏目:Java 来源:网络整理
导读:如何使用java在Windows桌面中找到所有正在运行的应用程序处于最小化状态? 最佳答案 您需要先将download jna.jar和platform.jar添加到您的类路径中.您可以通过查看MSDN documentation来确定要进行的Windows系统调用. 以下是枚举所有最小化窗口的代码: impor

如何使用java在Windows桌面中找到所有正在运行的应用程序处于最小化状态?

最佳答案
您需要先将download jna.jar和platform.jar添加到您的类路径中.您可以通过查看MSDN documentation来确定要进行的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);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读