【问题标题】:Automation using Pyautogui使用 Pyautogui 进行自动化
【发布时间】:2019-05-19 13:54:26
【问题描述】:

如果超过 5 分钟没有键盘和鼠标操作,我的系统将进入睡眠状态(我无法对睡眠时间进行任何更改。出于安全原因,它设置为 5 分钟)。

我正在使用 pyautogui 进行自动化。 Pyautogui 通过键盘和鼠标控制基于屏幕分辨率在后台工作。就我而言,完成执行需要超过 5 分钟。 5 分钟后进入睡眠状态并产生键盘中断。

请告诉我是否有任何解决方案。

【问题讨论】:

  • 您使用的是什么操作系统? pyautogui 的目标是什么?
  • 视窗。登录服务器,执行一些命令并截屏。
  • 目标是防止Windows休眠吗?
  • 是的,不知何故我需要阻止 Windows 休眠。

标签: python python-3.x automation python-2.x pyautogui


【解决方案1】:

您可以一直移动鼠标并通过将鼠标移到左上角来停用它:

import pyautogui as p

p.FAILSAFE = True # enables the fail-safe
distance = 200
while True:
    p.moveRel(distance, 0, duration=0.5)   # move right
    distance -= 5
    p.moveRel(0, distance, duration=0.5)   # move down
    p.moveRel(-distance, 0, duration=0.5)  # move left
    distance -= 5
    p.moveRel(0, -distance, duration=0.5)  # move up
    distance +=10

【讨论】:

    【解决方案2】:

    我发现可以工作的一件事是在虚拟机中运行 pyautogui 脚本,它可以使用虚拟鼠标和键盘。这具有 a 的双重好处。允许您在脚本运行时做其他工作,并且 b。虚拟鼠标和键盘不会因计算机进入睡眠状态而中断。

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      如果您正在等待某个动作完成,您可以在新线程中模拟鼠标的微小移动。这将防止系统进入睡眠状态。

      【讨论】:

      • 手动我需要做一些鼠标操作吗?
      • 不是手动的。只需在脚本本身中移动鼠标(一点点)。使用另一个线程,这样您的脚本将在第一个/主线程中等待长时间运行的操作完成,并且仍然能够在其他线程中执行鼠标操作。
      猜你喜欢
      • 1970-01-01
      • 2017-10-02
      • 2021-09-28
      • 2022-11-04
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 2016-06-27
      相关资源
      最近更新 更多