pyautogui 和 schedule 不能一起工作

pyautogui and schedule are not working together

我正在编写一个每 10 秒按一个键的程序。为此,我结合使用了 pyautogui 和 schedule。

from pyautogui import press, typewrite, hotkey
import schedule

keystroke = "w"

def keypress():
    press(keystroke)
schedule.every(10).seconds.do(keypress)

但是当我运行这个的时候,没有任何反应。我等了 10 秒钟,但没有键入任何键。我做错了什么?

让我们逐节检查您的代码,看看我们是否可以找出问题所在。

  • 您导入一些库
  • 您定义了一个函数,您希望每 10 秒 运行
  • 您告诉默认调度程序您希望每 10 秒调用一次您的函数
  • 然后你的程序终止

有两个有点相关的问题:

  • 代码中没有任何地方告诉调度程序 运行 任何计划的作业
  • 您的代码在任何计划作业 运行
  • 之前立即终止

要解决这些问题,您需要让程序循环并让调度程序检查 运行 任何待处理的作业。

以下代码定义了一个简单的作业,并将其安排为每 10 秒 运行。然后它永远循环每秒检查挂起的作业。

import schedule
import time

def job():
    print("Running....")

schedule.every(10).seconds.do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

如果您想让程序做的只是循环并每 n 个时间单位执行 1 个动作,那么调度模块就太过分了。它更适用于有大量计划操作的复杂系统,所有这些操作都 运行 在不同的周期。