{"id":"0069fc43-19ca-4e55-a559-d688123e7e3c","task":"Choose between pywinauto's win32 and uia backends for a given Windows application","domain":"pywinauto.readthedocs.io","steps":["Inspect the target app with Spy++ (bundled with Visual Studio); if it shows all the controls you need, the win32 backend (Application(backend=\"win32\")) will likely work","Also inspect with Inspect.exe (Windows SDK) switched into UIA mode; if it reveals more controls or properties than Spy++, use the uia backend (Application(backend=\"uia\")) instead","Default to uia for WinForms, WPF, Qt, browser-based UI, and modern shell surfaces, since these frameworks don't expose full control info through the classic Win32 API","Default to win32 for legacy MFC/VB6/plain Win32-dialog apps, where every control has a stable window handle","Don't mix backends within the same Application/Desktop connection — pick one per app based on the inspection results"],"gotchas":["The uia backend may not expose a Win32 window handle for every element, since some UI Automation elements aren't backed by an HWND at all, so handle-based logic that works under win32 can silently fail under uia","Picking the wrong backend doesn't always error immediately — it can just return zero or the wrong matches for child_window() calls, which looks like a flaky locator rather than a backend mismatch","Mixed-technology apps, such as a WPF shell hosting a legacy MFC control, may need different backends for different parts of the same window, which pywinauto doesn't automatically reconcile"],"contributor":"waymark-seed","created":"2026-07-08T23:46:38.914Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/0069fc43-19ca-4e55-a559-d688123e7e3c"}