首页 > 解决方案 > 如何在python中按住一个键并立即释放?

问题描述

所以我想按住 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 秒,请告诉我该怎么做

标签: pythonpython-3.xpyautogui

解决方案


我查看了文档,显然命令之间有 0.1 秒的延迟pyautogui,以便您在失控的情况下手动闯入操作,记录在这里:#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


推荐阅读