Skip to main content

window automation package

Project description

pyautomation

pyautomation is a set of Python modules designed to automate the Microsoft Windows GUI, specifically without interacting with the mouse cursor and keyboard. At its simplest, it allows you to post mouse and keyboard events to Windows dialogs and controls.

With the pyautomation package, you can control your GUI automatically while simultaneously controlling the mouse and keyboard physically, similar to how selenium automates web browsers.

Create virtual environment(Recommended)

python -m venv myvenv
source ./myvenv/Scripts/activate

Installation

pip install python-automation

How to use

## Handle Usage
import os, time
import pyautomation.pyauto as pyapp
os.system ('notepad.exe')
time.sleep(3)
window = pyapp.msauto.WindowControl(searchDepth=1, ClassName='Notepad')

config = pyapp.ConfigLoader.load_config(desired_parent_name= window.Name, desired_child_name= "Text editor")
wa = pyapp.WinAuto(config=config)
result, depth = wa.walk_and_find(window)
wa.type_text(result.NativeWindowHandle, "hello notepad!")



## Load configuration
# config_path = r'.\config\pyauto.json'
# config = pyauto.ConfigLoader.load_config(config_path)
config = pyapp.ConfigLoader.load_config(desired_parent_name= "test.py - python-autoevent - Visual Studio Code", desired_child_name= "Docker", monitor_index=1)

wa = pyapp.WinAuto(config=config)


## search parent and child
root = pyapp.msauto.PaneControl(Name=config.desired_parent_name)

child, child_depth = wa.walk_and_find(root, debug=True)
wa.get_info(child, child_depth, "Target")
wa.get_info(child.GetParentControl(), child_depth-1, "Target Parent")


## click relative location
x, y = wa.get_relative_location(root, child)
wa.click_relative_location(root, x, y)


## click absolute location
wa.click_at(38, 864, visible=False)
# wa.click_at(4501, 1394, visible=True)




## Image feature matching
import pyautomation.pyautovision as vs
min_match_count=15
template_path= r".\imgs\fcfb.jpg"

a = vs.main(min_match_count=min_match_count, template_path=template_path, show=False)
print(a.object_center, a.object_location)


## click from image
wa.click_at(a.object_center[0], a.object_center[1], visible=False)


## monitor info
import pyautomation.displayinfo as pydis
print(pydis.DisplayInfo().get_scale_factor(pydis.DisplayInfo().get_Qapp()))
print(pydis.DisplayInfo().get_screen_info())

How to download inspect.exe

Click this git repo or MS Official Website for inspect

How to update PYPI (for only project manager)

Revision codes

  1. Update on Github after modifying codes.

Update version

  1. Update __version__ in __init__.py file in package
  2. Update version in setup.py file (Same setting as first step)
  3. Update after addtion, if install_requires is added in setup.py

Generate whl file

python setup.py sdist bdist_wheel
python setup.py bdist_wheel

Upload whl file

python -m twine upload dist/*
twine upload dist/pyautomation-X.X.X-py3-none-any.whl

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_automation-0.5.5.tar.gz (190.1 kB view details)

Uploaded Source

Built Distribution

python_automation-0.5.5-py3-none-any.whl (209.4 kB view details)

Uploaded Python 3

File details

Details for the file python_automation-0.5.5.tar.gz.

File metadata

  • Download URL: python_automation-0.5.5.tar.gz
  • Upload date:
  • Size: 190.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.11

File hashes

Hashes for python_automation-0.5.5.tar.gz
Algorithm Hash digest
SHA256 40d9a6343bed73b19eb81a9f51cd6d6f4dfac15c089e6353d4ac6ceddfdafad1
MD5 c2a7378003a744d5dd7e2fbadba756fa
BLAKE2b-256 aada3926acb292de58ed5d6809ee7900edcdfa282582a91b3e4dd24d3cd272a4

See more details on using hashes here.

File details

Details for the file python_automation-0.5.5-py3-none-any.whl.

File metadata

File hashes

Hashes for python_automation-0.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9c598e63a2917d534c41260434b8504dcbbc92dc48f4cd892e95acacec553e44
MD5 7fd962f6a244ad6d30d249d7522aab43
BLAKE2b-256 dba3ae144eded1982ce0e5182f826cdac01b2c7d2cbd354c96310e10f512ba9d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page