Metadata-Version: 2.4
Name: pywinGUI
Version: 3.4.10
Summary: PyWinGUI GUI Automation Library for Windows Forms (Binary Distribution)
Author: User
Requires-Python: ==3.13.11
Description-Content-Type: text/markdown
Requires-Dist: pywinauto
Requires-Dist: requests
Requires-Dist: pyautogui
Requires-Dist: pywin32
Requires-Dist: pillow
Requires-Dist: cryptography
Requires-Dist: pygetwindow
Requires-Dist: opencv-python

# pywinGUI

A Python framework for non-intrusive automation of Windows desktop applications.

---

## Overview

**pywinGUI** is a Python-based automation framework for **Windows desktop applications**, designed for **legacy and enterprise systems** that cannot be modified or instrumented for automation.

The framework follows a **black-box automation approach**, interacting with applications in the same way a human user would, without relying on application internals, debug interfaces, or special runtime configurations.

pywinGUI is intended for long-lived, business-critical desktop systems where stability, maintainability, and compliance are primary concerns.

---

## Key Characteristics

pywinGUI is suitable for environments where applications:

- Do not expose reliable automation identifiers
- Cannot be instrumented or injected
- Do not allow debug ports
- Cannot be recompiled or reconfigured for testing
- Are sensitive to intrusive automation techniques

---

## Supported Application Types

pywinGUI has been validated on:

- Progress 4GL / OpenEdge ABL desktop applications
- Informix-based Windows client applications
- POS systems (e.g., XStore-like systems)
- General Windows desktop applications running as client processes

If a human user can operate the application through the UI, it can be automated using pywinGUI.

---

## Design Principles

### Black-Box Automation

pywinGUI treats the application under test as a **black box**.

The framework does not require:
- Source code access
- Internal APIs
- Debug interfaces
- Runtime hooks or agents

Automation is driven solely by:
- Visible UI elements
- Labels and on-screen text
- Layout and relative positioning
- Visual relationships between controls

---

### Non-Intrusive Operation

pywinGUI does not alter the behavior of the application under test:

- No debug port usage
- No automation mode
- No DLL injection
- No background agents
- No accessibility configuration changes

The application runs exactly as it would for an end user.

---

## Architecture Overview

pywinGUI follows a **layered architecture** designed for stability and long-term maintainability.

### Orchestration Layer

The orchestration layer is responsible for:

- Determining the most reliable interaction strategy
- Resolving labels and repeated controls
- Applying retries and fallback logic
- Handling minor UI variations gracefully

This layer reduces brittleness and supports self-recovery from small UI changes.

---

### Interaction Layer

The interaction layer performs actual UI operations using:

- Keyboard and mouse input
- Windows UI Automation (UIA) where available
- Visual layout and positional logic where UIA is insufficient

All interactions are performed without relying on application internals.

---

## Self-Healing Behavior

pywinGUI is designed to tolerate minor UI changes by:

- Avoiding strict object dependencies
- Falling back to alternate resolution strategies
- Continuing execution when layouts shift slightly

This approach reduces long-term maintenance effort in enterprise automation environments.

---

## Comparison with Other Desktop Automation Tools

| Aspect | Typical Desktop Automation Tools | pywinGUI               |
|------|----------------------------------|------------------------|
| Debug Port Required | Often required | Not required           |
| Application Instrumentation | Common | Not required           |
| Agent / Injection | Frequently used | Not used               |
| Dependency on Automation IDs | High | Not required           |
| Stability on Legacy Systems | Often fragile | Designed for stability |
| Black-Box Automation | Limited | Native                 |

pywinGUI is designed based on extensive experience with commercial and open-source desktop automation tools, addressing common limitations observed in legacy system automation.

---

## Intended Audience

pywinGUI is intended for:

- Automation engineers
- Enterprise QA teams
- Legacy system modernization initiatives
- Organizations automating Windows desktop applications
- Environments with strict security or compliance requirements

---

## Roadmap (High-Level)

- Improved self-healing strategies
- AI-assisted automation definitions
- Enhanced control resolution logic
- Enterprise-scale stability improvements

The roadmap is intentionally high-level to maintain clarity and flexibility.

---

## Final Note

pywinGUI is designed to address a specific problem space:

**Reliable automation of Windows desktop applications that were not designed with automation in mind.**

The framework prioritizes stability, non-intrusiveness, and long-term maintainability over aggressive feature expansion.
