Move / Resize Elements + Window State (UIA Transform + Window)
This is UIA-element-level, not the HWND / title-level geometry in
window_layout / window_geometry. TransformPattern moves and resizes a
specific control or floating panel (dockable toolbars, MDI children, splitters)
that has no top-level window of its own; WindowPattern minimizes / maximizes a
window and — most usefully — reports its interaction state, a reliable “is
this window ready or modal-blocked?” signal that pixel or title polling can’t give.
move_element()/resize_element()— TransformPattern,set_window_state()— minimize / maximize / restore,window_interaction_state()— the readiness / modal-blocked signal.
Each is a thin dispatch onto the injectable accessibility.backends.get_backend()
seam — headless-testable via a fake backend; the real UIA calls live in the
Windows backend. Imports no PySide6.
Headless API
from je_auto_control import (move_element, resize_element,
set_window_state, window_interaction_state)
move_element(100, 200, name="Tool Palette") # reposition a floating panel
resize_element(640, 480, name="Preview") # resize a control
set_window_state("maximized", name="Editor") # normal / maximized / minimized
if window_interaction_state(name="Editor") == "ready":
... # not "blocked_by_modal" / "not_responding" — safe to drive
The element / window is located by name / role / app_name /
automation_id (same as the other native-control actions). The actions return
bool; window_interaction_state returns ready / blocked_by_modal /
not_responding / running / closing (or None if not found).
Executor commands
AC_move_element (x / y), AC_resize_element (width /
height), AC_set_window_state (state) and
AC_window_interaction_state ({state}). They are exposed as the matching
ac_* MCP tools (the actions destructive, the read read-only) and as Script
Builder commands under Native UI.