Пинпут клавиатура

from pynput.keyboard import Key, Controller

keyboard = Controller()

s_key = input(str(" What leter do you want : "))

keyboard.press(s_key)
keyboard.release(s_key)

когда я запускаю это, это дает мне ошибку, но когда я заменяю s_key, скажем, Key.cmd (для ключа Windows), это работает, но если я набираю Key.cmd там, где он спрашивает, это дает мне ошибку. Я думаю, это потому, что, скажем, я набрал key.cmd там, где он спрашивает, он заключает его в кавычки, поэтому это выглядит так:

keyboard.press("Key.cmd")
keyboard.release("Key.cmd")

Я посмотрел на это и пришел к выводу, что когда у вас есть такая переменная, она заключает ее в кавычки, и я не думаю, что pynput.keyboard регистрирует специальные ключи в кавычках:

keyboard.press(Key.cmd)
keyboard.release(Key.cmd)

person Hex    schedule 16.02.2021    source источник


Ответы (1)


Попробуй это:

from pynput.keyboard import Key, Controller

keyboard = Controller()

try:
    s_key = getattr(Key, input("What letter do you want : ")) # get the key
except AttributeError:
    print("no such key %s " % s_key) # if the key is not valid, notify the user about it
else: # if key is valid
    keyboard.press(s_key)
    keyboard.release(s_key)

Вы должны ввести cmd вместо Key.cmd, потому что если вы наберете Key.cmd, этот код попытается использовать Key.Key.cmd, что, конечно же, не сработает!

person Programmer    schedule 16.02.2021
comment
я не уверен, что я тупой, но почему я получаю эту ошибку pasteboard.co/JOF1O1E.png - person Hex; 16.02.2021
comment
@Hex моя вина, теперь должно работать! - person Programmer; 16.02.2021
comment
Спасибо, попробую посмотреть, работает ли это, когда я вернусь домой, и вы сказали cmd вместо key.cmd, когда я попробовал key.cmd, это сработало, но в этом случае я могу ошибаться ???? - person Hex; 17.02.2021
comment
Я только что попробовал, и это сработало СПАСИБО !!!! - person Hex; 17.02.2021
comment
@Hex, пожалуйста, прими ответ, тогда - person Programmer; 17.02.2021