Last modified: Nov 23, 2024 By Alexander Williams

Track Mouse Position in Python with pynput.mouse.position

The pynput.mouse.position property is a powerful tool for tracking and manipulating mouse cursor positions in Python applications. It's particularly useful for automation scripts and monitoring user interactions.

Understanding pynput.mouse.position Basics

Before diving into mouse position tracking, ensure you have pynput installed. If you haven't installed it yet, check out how to properly install the pynput module.

Getting Current Mouse Position


from pynput.mouse import Controller

# Initialize mouse controller
mouse = Controller()

# Get current position
position = mouse.position
print(f"Current mouse position: {position}")


Current mouse position: (384, 521)

Monitoring Mouse Position in Real-time

Here's how to create a simple mouse position tracker that continuously monitors cursor movement:


from pynput.mouse import Controller
import time

def track_mouse_position():
    mouse = Controller()
    
    try:
        while True:
            # Get and display position every second
            print(f"Position: {mouse.position}")
            time.sleep(1)
    except KeyboardInterrupt:
        print("\nTracking stopped")

track_mouse_position()

Moving the Mouse Programmatically

You can also use the Controller to move the mouse cursor to specific coordinates. This functionality pairs well with keyboard automation capabilities.


from pynput.mouse import Controller

mouse = Controller()

# Move mouse to absolute position
mouse.position = (100, 200)

# Move mouse relative to current position
current_position = mouse.position
mouse.move(50, -30)  # Move 50 pixels right and 30 pixels up

Practical Applications

Mouse position tracking is essential for various automation tasks, including:

  • GUI Testing - Verify element positions and interactions
  • Screen Recording - Track user movements for tutorials
  • Game Automation - Create automated game playing scripts

Error Handling and Best Practices

Always implement proper error handling when working with mouse position tracking:


from pynput.mouse import Controller

def safe_get_position():
    try:
        mouse = Controller()
        return mouse.position
    except Exception as e:
        print(f"Error getting mouse position: {e}")
        return None

Coordinating Mouse and Keyboard Actions

For complex automation tasks, combine mouse position control with keyboard press events to create comprehensive solutions.

Conclusion

pynput.mouse.position is a versatile tool for mouse tracking and automation in Python. With proper implementation and error handling, it enables powerful automation solutions.

Remember to consider system permissions and user privacy when implementing mouse tracking functionality in your applications.