【问题标题】:Keyboard press not working with letters using pynput in Minecraft键盘按下不适用于在 Minecraft 中使用 pynput 的字母
【发布时间】:2022-01-26 05:40:45
【问题描述】:

我正在尝试使 Minecraft 中的某些内容自动化,但使用 pynput 按下字母键似乎没有在游戏中注册。它使用文本编辑器和 Key.esc 等键和鼠标输入在游戏中工作。我尝试以 root 身份运行 Pycharm,并在按下和发布之间添加延迟。

这段代码是我想做的基本版本:

from pynput.keyboard import Controller as kController
import time

keyboard = kController()

time.sleep(1)
keyboard.press('q')
time.sleep(0.1)
keyboard.release('q')

【问题讨论】:

  • 无法编辑我自己的帖子,所以我将其用作编辑:我意识到现在我可以将我想要的操作绑定到另一个有效的键,但这不是我的解决方案想。如果没有任何效果,我就用这个。
  • 你可以edit你的帖子。只是别人提出了修改,你可以拒绝也可以接受。就个人而言,比如我有很多声望,我投票拒绝,但如果你愿意,你可以覆盖我的投票
  • 它说我需要至少 2k 声望才能审核建议的编辑。
  • 哦。对我来说这是一个错误。我建议你继续Meta Stack Overflow (meta.stackoverflow.com) 并提出问题报告此错误

标签: python linux minecraft pynput


【解决方案1】:

您的代码中有一个错误。如果要重复操作直到退出,则需要一个循环(while)。如果这不能解决您的问题,请尝试在您的 powershell/cmd python3 -m pip install pynput 中重新导入 pynput。

如果您需要参考,这是我的代码。

import time
from pynput.keyboard import Controller as kController
import keyboard
vKeyBoard = kController()

print('Running')
while keyboard.is_pressed('p') == False:
    vKeyBoard.press("w")
    time.sleep(1)
    vKeyBoard.release("w")
    time.sleep(0.5)
print('Stopped')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-19
    • 2021-04-29
    • 1970-01-01
    • 2020-02-17
    • 2016-10-27
    • 2019-06-13
    • 2021-01-08
    • 2019-11-05
    相关资源
    最近更新 更多