【问题标题】:How do I hold down a key and release without delay in python?如何在python中按住一个键并立即释放?
【发布时间】:2020-08-23 10:24:59
【问题描述】:

所以我想按住 c 键让我们说 0.2 秒,然后不用等待一点点按空格并立即释放它(0.0 秒),我想使用 pyautogui.keyDown("") 和 keyUp("") 会有所帮助,但它有一点延迟,就像我这样做时一样

pyautogui.keyDown("c")
pyautogui.keyUp("C")

它的作用是按住键“c”几秒钟,但我没有给它任何延迟我只是希望它按 c 0.0 秒我的主要事情是

import pyautogui
import time
time.sleep(0.5)

pyautogui.keyDown("c")
time.sleep(0.2) # so it would put 0.2 second delay in it i didnt know it had a delay in itself
pyautogui.keyUp("c")
time.sleep(0.5)
pyautogui.keyDown("space")
pyautogui.keyUp("space")
time.sleep(0.5)
pyautogui.keyDown("c")
time.sleep(0.2)
pyautogui.keyUp("c")
time.sleep(0.5)
pyautogui.keyDown("space")
pyautogui.keyUp("space")

time.sleep 是我想要的延迟,但是没有 time.sleep 它本身就有延迟,所以我尝试做 pyautogui.typewrite 的时间太长了,但它会出现大部分故障有时,如果有类似保持 x 秒的事情,请告诉我该怎么做

【问题讨论】:

  • 首先,我会将您正在使用的键分配给变量,因此在第一个示例中您不会遇到小写 c 和大写 C 之类的问题。在所有位置使用变量。据我所知,您程序中的时间与您描述中的时间不符。我会用一个似乎符合你描述的程序来回答。
  • 故障安全功能的命令之间有 0.1 秒的延迟。记录在这里:fail-safe。它可以被禁用,但不建议这样做,否则您可能无法重新控制您的机器。

标签: python python-3.x pyautogui


【解决方案1】:

我查看了文档,显然pyautogui 命令之间有 0.1 秒的延迟,以便您在失控的情况下手动闯入操作,记录在这里:#fail-safe。他们警告不要这样做,但你也许可以这样做:

import pyautogui
import time

KEY_C = "c"
KEY_SPACE = "space"

time.sleep(0.5)

pyautogui.FAILSAFE = False # danger zone
pyautogui.keyDown(KEY_C)
time.sleep(0.2)
pyautogui.keyUp(KEY_C)
pyautogui.keyDown(KEY_SPACE)
pyautogui.keyUp(KEY_SPACE)
pyautogui.FAILSAFE = True # out of danger

# do it again

time.sleep(0.5)
pyautogui.FAILSAFE = False
pyautogui.keyDown(KEY_C)
time.sleep(0.2)
pyautogui.keyUp(KEY_C)
pyautogui.keyDown(KEY_SPACE)
pyautogui.keyUp(KEY_SPACE)
pyautogui.FAILSAFE = True

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2010-09-15
    • 2017-04-30
    • 1970-01-01
    • 2013-01-23
    相关资源
    最近更新 更多