Вы можете использовать следующий пример:
>>> pyautogui.keyDown('shift') # hold down the shift key
>>> pyautogui.press('left') # press the left arrow key
>>> pyautogui.press('left') # press the left arrow key
>>> pyautogui.press('left') # press the left arrow key
>>> pyautogui.keyUp('shift') # release the shift key
В вашем случае вы использовали бы функцию keyDown
и таймер или эквивалентный для запуска keyUp
.
Вы можетенайдите больше информации относительно использования таймеров здесь или, что еще лучше, используйте Таймер из библиотеки потоков - особенно, если вы хотите, чтобы обработка продолжалась.
Пример использованияthreading.Timer
ниже.
def hello():
print("hello, world")
t = Timer(30.0, hello)
t.start() # after 30 seconds, "hello, world" will be printed
В документации keyDown
можно отметить следующее:
ПРИМЕЧАНИЕ. По некоторым причинам это не вызывает повторения клавиш, напримерпроизойдет, если удерживать клавишу клавиатуры в текстовом поле.
Альтернативой использованию функции keyDown
является повторение функции press
;в случаях, когда keyDown
не удовлетворяет поведению, требуемому разработчиком и / или пользователем.
def hold_key(key, hold_time):
import time, pyautogui
start_time = time.time()
while time.time() - start_time < hold_time:
pyautogui.press(key)
или
import pyautogui
while True:
pyautogui.press('w')
Приведенный выше код не тестировался.