Как отслеживать и имитировать клавиши со стрелками через pynput в python

#python-3.x #windows #keyboard #pynput

#python-3.x #Windows #клавиатура #pynput

Вопрос:

Итак, я работаю над программой, для которой требуется имитировать / эмулировать нажатия клавиш со стрелками?:

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

это работает, но я не знаю, как это называется для клавиш со стрелками

(на win 10)

Ответ №1:

Как нажать все четыре из этих клавиш:

 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)
  

Вы можете упростить задачу, создав функцию, если вам нужно использовать ее много раз:

 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.
  

Надеюсь, я помог.

Ответ №2:

В python вы можете просматривать значения enum с помощью dir функции.

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

Вывод

 ['__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']
  

Вы можете видеть вверх, вниз, влево, вправо в списке. Попробуйте эти клавиши.