GUI automation can save you countless hours by handling repetitive computer tasks. One of the most powerful tools for this is PyAutoGUI, a Python library that lets you programmatically control your mouse, keyboard, and screen. Whether you’re automating data entry, testing software, or creating macros, PyAutoGUI makes it surprisingly straightforward.
Getting Started
Before diving in, ensure you have Python installed along with a code editor like VS Code or PyCharm. Install PyAutoGUI using pip:
bash
Copy
Download
pip install pyautogui
Understanding Screen Coordinates
Your screen operates on an X-Y grid where:
- Top-left corner is (0, 0)
- X-axis increases to the right
- Y-axis increases downward
For example, a 1920×1080 screen’s bottom-right pixel would be (1919, 1079).
To check your screen resolution:
python
Copy
Download
import pyautogui
screen_width, screen_height = pyautogui.size()
print(f”Screen resolution: {screen_width}x{screen_height}”)
To track your mouse in real-time:
python
Copy
Download
from time import sleep
while True:
x, y = pyautogui.position()
print(f”Cursor position: X={x}, Y={y}”)
sleep(1)
Controlling the Mouse
Moving the Cursor
1. Absolute movement: Jump to specific coordinates.
python
Copy
Download
pyautogui.moveTo(300, 400, duration=1) # Moves to (300, 400) in 1 second
2. Relative movement: Shift from the current position.
python
Copy
Download
pyautogui.moveRel(50, -100, duration=0.5) # Moves 50px right, 100px up
Clicking and Dragging
1. Single/Double click:
python
Copy
Download
pyautogui.click(500, 600) # Left-click at (500, 600)
pyautogui.doubleClick(500, 600) # Double-click
2. Drag-and-drop:
python
Copy
Download
pyautogui.dragTo(800, 300, duration=1, button=’left’) # Drags to (800, 300)
Scrolling
python
Copy
Download
pyautogui.scroll(200) # Scrolls up
pyautogui.scroll(-200) # Scrolls down
Keyboard Automation
Typing Text
python
Copy
Download
pyautogui.write(“Hello, automation!”) # Types the string
Hotkeys
python
Copy
Download
pyautogui.hotkey(‘ctrl’, ‘c’) # Copy
pyautogui.hotkey(‘ctrl’, ‘v’) # Paste
Real-World Example: Automating Notepad
Let’s automate opening Notepad and typing a message:
python
Copy
Download
import pyautogui
from time import sleep
# Open Windows search
pyautogui.click(100, 1050) # Adjust coordinates for your taskbar
sleep(1)
# Type “Notepad” and open it
pyautogui.write(“Notepad”)
sleep(1)
pyautogui.press(‘enter’)
# Wait for Notepad to launch
sleep(2)
# Type a message
pyautogui.write(“This was automated with PyAutoGUI!”)
Pro Tips
- Fail-Safes: Enable pyautogui.FAILSAFE = True—moving the mouse to the top-left corner aborts the script.
- Pauses: Use pyautogui.PAUSE = 0.5 to add delays between actions.
Final Thoughts
PyAutoGUI is incredibly versatile—whether you’re automating spreadsheets, testing UIs, or building bots. Experiment with its methods, adjust for your screen layout, and soon you’ll be automating tasks effortlessly.
Got a repetitive task? PyAutoGUI might just be the solution!