|
|
@@ -17,8 +17,36 @@ import java.util.List;
|
|
|
|
|
|
public class User32Util {
|
|
|
private static final User32Instance USER_32_INSTANCE = User32Instance.INSTANCE;
|
|
|
+ private static final User32Ex USER_32_EX = User32Ex.INSTANCE;
|
|
|
private static Pointer callBackHwnd;
|
|
|
|
|
|
+
|
|
|
+ public static void setFocusToWindowsApp(String applicationTitle, int windowState) {
|
|
|
+ int state = windowState;
|
|
|
+ switch (state) {
|
|
|
+ default:
|
|
|
+ case 0:
|
|
|
+ state = User32.SW_SHOWNORMAL;
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ state = User32.SW_SHOWMAXIMIZED;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ state = User32.SW_SHOWMINIMIZED;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ WinDef.HWND hWnd = USER_32_EX.FindWindow(null, applicationTitle);
|
|
|
+ if (USER_32_EX.IsWindowVisible(hWnd)) {
|
|
|
+ if (state != User32.SW_SHOWMINIMIZED) {
|
|
|
+ USER_32_EX.ShowWindow(hWnd, User32.SW_SHOWMINIMIZED);
|
|
|
+ }
|
|
|
+ USER_32_EX.ShowWindow(hWnd, state);
|
|
|
+ USER_32_EX.SetFocus(hWnd);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public static boolean windowExists(final String startOfWindowName) {
|
|
|
return !USER_32_INSTANCE.EnumWindows(new User32Instance.WNDENUMPROC() {
|
|
|
@Override
|
|
|
@@ -157,7 +185,7 @@ public class User32Util {
|
|
|
WinDef.POINT getPos = new WinDef.POINT();
|
|
|
WinDef.RECT rect = new WinDef.RECT();
|
|
|
User32Instance.INSTANCE.GetClientRect(hWnd, rect);
|
|
|
- User32Ex.instance.ClientToScreen(hWnd, getPos);
|
|
|
+ User32Ex.INSTANCE.ClientToScreen(hWnd, getPos);
|
|
|
|
|
|
return new Rectangle(getPos.x, getPos.y, rect.right, rect.bottom);
|
|
|
}
|