Pynput - DanielMueller1309/Python GitHub Wiki
Controlling the keyboard
from pynput.keyboard import Key, Controller
keyboard = Controller()
# Press and release space
keyboard.press(Key.space)
keyboard.release(Key.space)
#Press key and release after press
keyboard.tap(Key.space)
# Type a lower case A; this will work even if no key on the
# physical keyboard is labelled 'A'
keyboard.press('a')
keyboard.release('a')
# Type two upper case As
keyboard.press('A')
keyboard.release('A')
with keyboard.pressed(Key.shift):
keyboard.press('a')
keyboard.release('a')
# Type 'Hello World' using the shortcut type method
keyboard.type('Hello World')
Monitoring the keyboard
Use pynput.keyboard.Listener like this:
from pynput import keyboard
def on_press(key):
try:
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:
# Stop listener
return False
# Collect events until released
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
# ...or, in a non-blocking fashion:
listener = keyboard.Listener(
on_press=on_press,
on_release=on_release)
listener.start()
Keys
alt = 0 A generic Alt key. This is a modifier.
alt_gr = 0 The AltGr key. This is a modifier.
alt_l = 0 The left Alt key. This is a modifier.
alt_r = 0 The right Alt key. This is a modifier.
backspace = 0 The Backspace key.
caps_lock = 0 The CapsLock key.
cmd = 0 A generic command button. On PC platforms, this corresponds to the Super key or Windows key, and on Mac it corresponds to the Command key. This may be a modifier.
cmd_l = 0 The left command button. On PC platforms, this corresponds to the Super key or Windows key, and on Mac it corresponds to the Command key. This may be a modifier.
cmd_r = 0 The right command button. On PC platforms, this corresponds to the Super key or Windows key, and on Mac it corresponds to the Command key. This may be a modifier.
ctrl = 0 A generic Ctrl key. This is a modifier.
ctrl_l = 0 The left Ctrl key. This is a modifier.
ctrl_r = 0 The right Ctrl key. This is a modifier.
delete = 0 The Delete key.
down = 0 A down arrow key.
end = 0 The End key.
enter = 0 The Enter or Return key.
esc = 0 The Esc key.
f1 = 0 The function keys. F1 to F20 are defined.
home = 0 The Home key.
insert = 0 The Insert key. This may be undefined for some platforms.
left = 0 A left arrow key.
media_next = 0 The next track button.
media_play_pause = 0 The play/pause toggle.
media_previous = 0 The previous track button.
media_volume_down = 0 The volume down button.
media_volume_mute = 0 The volume mute button.
media_volume_up = 0 The volume up button.
menu = 0 The Menu key. This may be undefined for some platforms.
num_lock = 0 The NumLock key. This may be undefined for some platforms.
page_down = 0 The PageDown key.
page_up = 0 The PageUp key.
pause = 0 The Pause/Break key. This may be undefined for some platforms.
print_screen = 0 The PrintScreen key. This may be undefined for some platforms.
right = 0 A right arrow key.
scroll_lock = 0 The ScrollLock key. This may be undefined for some platforms.
shift = 0 A generic Shift key. This is a modifier.
shift_l = 0 The left Shift key. This is a modifier.
shift_r = 0 The right Shift key. This is a modifier.
space = 0 The Space key.
tab = 0 The Tab key.
up = 0 An up arrow key.
Use keyboard and MouseController at same time:
from pynput.keyboard import Key, Controller as KeyboardController
from pynput.mouse import Button, Controller as MouseController
keyboard = KeyboardController()
mouse = MouseController()
Keyboard Tab rebuild Prozedure for pyinstaller exe
Prozedure:
def key_tap(anzahl, keyname):
k = int(anzahl)
for j in range(k):
keyboard.press(keyname)
keyboard.release(keyname)
Maincode:
# im Maincode dann die anzahl der Taps und danach den gewünschten key eintragen
key_tap(12, Key.tab)
Keyboard Combi of more keys in combination like alt + f4 or some else
Prozedure:
def key_combi(keyzahl, keys):
k = int(keyzahl)
for j in range(0, k):
keyboard.press(keys[j])
for j in range(0, k):
keyboard.release(keys[j])
Maincode:
# signal in first character set the number of buttons to press
# say in the brackets [...,...,...] which key in order from left to right you want to press and release
key_combi(2, [Key.alt_l, Key.f4])