python actual battle = = = python control keyboard and mouse: pynput

Python control keyboard and mouse: pynput



This library allows you to control and monitor input devices.

For each input device, it contains a sub package to control and monitor the input device:

  • pynput.mouse: a class that controls and monitors the mouse or touchpad.

  • pynput.keyboard: a class that contains the control and monitoring keyboard.

Introduction to basic usage:

from  pynput.mouse import Button, Controller
import time 

mouse = Controller()
print('The current pointer position is {0}'.format(mouse.position))

#set pointer positon
mouse.position = (277, 645)
print('now we have moved it to {0}'.format(mouse.position))

#Mouse movement (x,y) distance
mouse.move(5, -5)

#Double click, 1)

#scroll two  steps down
mouse.scroll(0, 500)

Monitor mouse events:

from pynput import mouse

def on_move(x, y ):
    print('Pointer moved to {o}'.format(

def on_click(x, y , button, pressed):
    print('{0} at {1}'.format('Pressed' if pressed else 'Released', (x, y)))
    if not pressed:
        return False

def on_scroll(x, y ,dx, dy):
    print('scrolled {0} at {1}'.format(
        'down' if dy < 0 else 'up',
        (x, y)))

while True:
    with mouse.Listener( no_move = on_move,on_click = on_click,on_scroll = on_scroll) as listener:


Keyboard input usage:

from pynput.keyboard import Key, Controller

keyboard = Controller()

#Press and release space

#Type a lower case A ;this will work even if no key on the physical keyboard  is labelled 'A''a')

#Type two  upper case As'A')
# or 
with keyboard .pressed(Key.shift):'a')

#type 'hello world '  using the shortcut type  method
keyboard.type('hello world')


Keyboard monitoring:

from pynput import keyboard

def on_press(key):
        print('alphanumeric key  {0} pressed'.format(key.char))
    except AttributeError:
        print('special key {0} pressed'.format(key))

def on_release(key):
    print('{0} released'.format(key))
    if key == keyboard.Key.esc:
        return False

while True:
    with keyboard.Listener(
        on_press = on_press,
        on_release = on_release) as listener:

Keywords: Python

Added by Stalingrad on Tue, 05 May 2020 05:34:26 +0300