一学一做专题网站,单位网站建设内容,京东慧采入驻条件及费用2023年,百度一下就知道场景
准备做一个RPA工具#xff0c;可以从桌面和浏览器选择元素#xff0c;获取窗口信息和进程信息是必要的#xff0c;因为获取了窗口信息和进程#xff0c;可用对程序做一些想要的操作。
coding
工具类
/*** Windows系统工具类*/
public class WinOsUtils {static fi…场景
准备做一个RPA工具可以从桌面和浏览器选择元素获取窗口信息和进程信息是必要的因为获取了窗口信息和进程可用对程序做一些想要的操作。
coding
工具类
/*** Windows系统工具类*/
public class WinOsUtils {static final User32 user32 User32.INSTANCE;/*** 获取当前系统下所有的Windows窗口信息* return*/public static ListWindowInfo allWindows() {final ListWindowInfo windows new ArrayList();boolean result user32.EnumWindows(new WinUser.WNDENUMPROC() {public boolean callback(final WinDef.HWND hwnd, final Pointer data) {if (user32.IsWindowVisible(hwnd)) {IntByReference windowPid new IntByReference();user32.GetWindowThreadProcessId(hwnd, windowPid);String windowTitle getWindowTitle(hwnd);windows.add(new WindowInfo(hwnd, windowPid.getValue(), windowTitle));}return true;}},null);/* Handle errors. */if (!result Kernel32.INSTANCE.GetLastError() ! 0) {throw new RuntimeException(Couldnt enumerate windows.);}/* Return the window list. */return windows;}/*** 过窗口句柄来获取指定窗口的标题文本通常用于窗口管理、自动化测试、或需要识别和操作特定窗口的应用程序中。* param hWnd 句柄* return 窗口标题*/public static String getWindowTitle(WinDef.HWND hWnd) {char[] text new char[1024];int length user32.GetWindowText(hWnd, text, 1024);return length 0 ? new String(text, 0, length) : null;}
}
窗口信息 /*** 窗口信息*/
public class WindowInfo {/*** 句柄 唯一定义APP的因素*/public WinDef.HWND hwnd;/*** 进程id*/public int pid;/*** 标题*/public String title;public WindowInfo(WinDef.HWND hwnd, int pid, String title) {super();this.hwnd hwnd;this.pid pid;this.title title;}public WinDef.HWND getHwnd() {return hwnd;}public int getPid() {return pid;}public String getTitle() {return title;}
}
进程信息
/*** 系统进程信息* Author: Herche Jane* Date: 2023/10/16*/
public class ProcessInfo {/*** 进程名称*/private String name;/*** pid*/private Integer pid;public ProcessInfo(String name,Integer pid){this.name name;this.pid pid;}public String getName() {return name;}public Integer getPid() {return pid;}}结束
这样我们获取了所有的窗口信息和进程信息了后面有利于我们RPA软件的开发。