Задать вопрос
@GrimSmol

Не нажимаются клавижи в майнкрафт с помощью pyautogui, как это можно провернуть?

import pyautogui
from time import sleep
sleep(5)
pyautogui.keyDown('ctrl')
sleep(0.5)
pyautogui.keyDown('D')
sleep(5)
pyautogui.keyUp('D')
sleep(0.5)
pyautogui.keyDown('A')
sleep(5)
pyautogui.keyUp('A')
sleep(0.5)
pyautogui.keyUp('ctrl')

так же видно что он не регистрирует нажатия A D и другие, все кроме Ctrl, это можно понять что он сразу отпускает его через 0.5сек
  • Вопрос задан
  • 566 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 2
@FCKJesus
Как я понял вы ожидаете что D и A будут зажаты на 5 секунд.
На сколько я помню буквы нельзя зажать, но можно с имитировать зажатие.
import pyautogui
import time


def press_key(key: str, time: int):
    """
    key: Клавиша
    time: Время зажатия
    """
    amount_of_clicks = time // 0.03
    pyautogui.press(keys=key, presses=int(amount_of_clicks), interval=0.03)


time.sleep(5)

with pyautogui.hold('ctrl'):
    press_key("d", 5)
    time.sleep(0.5)
    press_key("a", 5)
Ответ написан
yxtiblin
@yxtiblin
Ваш код нажимает, после отпускает кнопку, а уже потом ждет sleep
в офф документации есть функция hold() которая будет зажимать пока другие инструкции не выполняться
# зажимает shift и 3 раза жмет налево
with pyautogui.hold('shift'):
        pyautogui.press(['left', 'left', 'left']) 
# в вашем случае можно попробовать сделать так
with pyautogui.hold('shift'):
        sleep(n) # n - время зажатия
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы