selenium测试用JNAUtils

public class JNAUtils {
	// char数组转为String
	public static String char2String(char[] cs) {
		StringBuffer sf = new StringBuffer();
		for (char c : cs) {
			if (c != '\0')
				sf.append(c);
		}
		return sf.toString();
	}

	// 枚举窗体
	public static void listTitles() {
		User32.INSTANCE.EnumWindows(new WNDENUMPROC() {
			int count;

			public boolean callback(HWND hWnd, Pointer userData) {
				String title = getTitle(hWnd);
				count++;
				if (!title.equals("")) {
					System.out.println("total " + count);
					System.out.println(hWnd);
					System.out.println(title);
					// System.out.println(getUnitFrameWnd(title));
				}
				return true;
			}
		}, null);

	}
// 枚举子窗体
	public static void listItems(HWND window) {
		if (window == null)
			return;
		User32.INSTANCE.EnumChildWindows(window, new WNDENUMPROC() {
			int count;

			public boolean callback(HWND hWnd, Pointer userData) {
				String title = getTitle(hWnd);
				count++;
				if (!title.equals("")) {
					System.out.println("total " + count);
					System.out.println(hWnd);
					System.out.println(title);
					// System.out.println(getUnitFrameWnd(title));
				}
				return true;
			}
		}, null);

	}

	public static List<HWND> getWindows() {
		final List<HWND> items = new ArrayList<HWND>();
		User32.INSTANCE.EnumWindows(new WNDENUMPROC() {
			int count;

			public boolean callback(HWND hWnd, Pointer userData) {
				String title = getTitle(hWnd);
				count++;
				if (!title.equals("")) {
					items.add(hWnd);
				}
				return true;
			}
		}, null);
		return items;
	}
public static List<HWND> getItems(HWND window) {
		if (window == null)
			return null;
		final List<HWND> items = new ArrayList<HWND>();
		User32.INSTANCE.EnumChildWindows(window, new WNDENUMPROC() {
			int count;

			public boolean callback(HWND hWnd, Pointer userData) {
				// String title=getTitle(hWnd);
				count++;

				items.add(hWnd);

				return true;
			}
		}, null);
		return items;
	}

	// 由窗体名称获取句柄
	public static HWND getUnitFrameWnd(String windowTitle) {
		HWND hwnd = User32.INSTANCE.FindWindow(null, windowTitle);
		return hwnd;
	}

	// 设置为焦点
	public static void setFocus(HWND hwnd) {
		if (hwnd == null)
			return; // 窗口不存在
		while (isMin(hwnd)) {
			System.out.println("窗口最小化,已还原");
			User32.INSTANCE.ShowWindow(hwnd, User32.SW_NORMAL);
		}
		while (!hwnd.equals(getACtiveHwnd())) {
			System.out.println("设焦点");
			User32.INSTANCE.SetForegroundWindow(hwnd);
		}
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值