Python - Нажатие клавиши Pynput не совпадает с фактическим нажатием клавиши - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь написать очень простой афк-фарм-бот для игры. Все, что нужно сделать, это нажать пробел два раза каждые несколько секунд. Это работает при написании программного обеспечения, такого как обычный текстовый редактор, но не работает в игре. Должна быть разница между нажатиями клавиш pynput и обычными, и мне нужно знать, что это за разница, чтобы заставить мой код работать. Вы можете мне помочь?

Вот весь код, который я использую:

from pynput.keyboard import Key, Controller
import time
import random


keyboard = Controller()

print("NosTale-Bot started. Please Insert specifications:")
idelay = int(input("Initial Delay (ins sec): "))
tickGap = float(input("Tick Gap (in sec): "))
tickDivergence = float(input("Tick Divergence (in sec): "))
maxDuration = float(input("Max Duration (in min): "))

print("You have " + str(idelay) + " seconds to switch to NosTale.")
time.sleep(idelay)
sTime = time.time()
wTime = time.time()
rDivergence = -tickGap
tCounter = 0
while True:
    cTime = time.time() - wTime
    if (cTime >= tickGap + rDivergence):
        tCounter += 1
        print("Tick " + str(tCounter) + ": " + str(time.time() - sTime))
        keyboard.press(Key.space)
        keyboard.release(Key.space)
        time.sleep(0.05)
        keyboard.press(Key.space)
        keyboard.release(Key.space)
        rDivergence = (random.random()*tickDivergence*2-tickDivergence)
        wTime = time.time()

    if (time.time() - sTime >= maxDuration*60):
        break

1 Ответ

0 голосов
/ 10 апреля 2020

К сожалению, модуль pynput не может выполнять свою работу в большинстве игр. Он использует поток младшего слушателя. Кажется, он не может работать в большинстве игр.

Так что для решения этой проблемы вы для этого можно использовать AutoHotKey (очень полезный и простой в освоении инструмент). Мой сценарий pynput не может работать в Overwatch. Поэтому я использовал AutoHotKey для успешного управления Overwatch.

...