How to track and simulate arrow keys through pynput in python

9.7k Views Asked by At

So I am working on a programm that needs arrow key presses to be simulated/emulated?:

keyboard.press(Key.ctrl)
keyboard.press(Key.alt)
keyboard.press(Key.delete)
keyboard.release(Key.ctrl)
keyboard.release(Key.alt)
keyboard.release(Key.delete)

this works but I don't know how it's called for arrow keys

(on win 10)

2

There are 2 best solutions below

0
On BEST ANSWER

How to press all four of those keys:

from pynput.keyboard import Key, Controller
kb = Controller()
kb.press(Key.up) # Presses "up" key
kb.release(Key.up) # Releases "up" key
kb.press(Key.left) # Presses "left" key
kb.release(Key.left) #etc..
kb.press(Key.right)
kb.release(Key.right)
kb.press(Key.down)
kb.release(Key.down)

You can make it easier by creating a function if you need use it many times:

from pynput.keyboard import Key, Controller
kb = Controller()
def press(button):
    kb.press(button)
    kb.release(button)
# Then you can use it in one line:
press(Key.left)
# It will automatically press and release the left key.

Hope I helped.

0
On

In python, you can view enum values using the dir function.

from pynput import keyboard
print(dir(keyboard.Key))  # show full enum list

Output

['__class__', '__doc__', '__members__', '__module__', 'alt', 'alt_l', 'alt_r', 
 'backspace', 'caps_lock', 'cmd', 'cmd_r', 'ctrl', 'ctrl_l', 'ctrl_r', 'delete', 
 'down', 'end', 'enter', 'esc', 'f1', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 
 'f16', 'f17', 'f18', 'f19', 'f2', 'f20', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9',
 'home', 'insert', 'left', 'media_next', 'media_play_pause', 'media_previous', 
 'media_volume_down', 'media_volume_mute', 'media_volume_up', 'menu', 'num_lock', 
 'page_down', 'page_up', 'pause', 'print_screen', 'right', 'scroll_lock', 'shift', 
 'shift_r', 'space', 'tab', 'up']

You can see up, down, left, right in the list. Try those keys.