Python/Windows 10 - 有没有办法防止 Windows 10 计算机在 Python 中进入睡眠状态?

Posted

技术标签:

【中文标题】Python/Windows 10 - 有没有办法防止 Windows 10 计算机在 Python 中进入睡眠状态?【英文标题】:Python/Windows 10 - Is there a way to prevent a Windows 10 computer from going to sleep in Python? 【发布时间】:2020-09-02 04:15:44 【问题描述】:

有没有办法防止 Windows 10 计算机在 Python 中进入睡眠状态?

与此处发布的问题基本相同,但适用于 Windows 10:Prevent OS X from going to sleep with Python?

有没有可以从 Python 调用的 Windows 命令?

如果这有什么不同的话,我正在使用 Python 3.6。

【问题讨论】:

也许powercfg -x -standby-timeout-ac 0 会做到。 这能回答你的问题吗? Prevent sleep mode python (Wakelock on python) 【参考方案1】:

这可能不是一个直接的答案 & 不是一种优雅的方式,但会起作用。您可以使用 PyAutoGUI 以特定间隔单击特定屏幕位置。这将迫使您的计算机不休眠

import time
import pyautogui

# press ctrl+c to get out of the loop
while(True):
    pyautogui.click(x=100, y=200) # make sure nothing is there in the clicked location
    time.sleep(10)

【讨论】:

【参考方案2】:

对于以后看到这个的人,我强烈推荐 kbarnes3 的这个装饰器:https://gist.github.com/kbarnes3/3fb7d353e9bdd3efccd5 只需下载文件,将其放入您的脚本目录并使用如下:

from powermanagement import long_running

@long_running
def your_function():
    #do stuff

your_function()

只要 your_function() 正在运行,电脑就不会关闭屏幕,因此不会进入睡眠状态。

它通过使用 ctypes 模块和线程执行状态来工作。据我所知,这也是大多数媒体播放器等使用的方法。这是一个非常干净的解决方案,因为您不必移动鼠标或按键。

【讨论】:

以上是关于Python/Windows 10 - 有没有办法防止 Windows 10 计算机在 Python 中进入睡眠状态?的主要内容,如果未能解决你的问题,请参考以下文章

cx_Freeze 错误模块 SSL 不可用 Python 3.7 Windows 10

C++开发python windows版本的扩展模块示例

Appium + Python + Windows10 Android 搭建 攻略

如何在 python (Windows) 中播放声音

有没有办法匹配 Python ≥ 3.10 中的不等式?

Windows下python 3.0版本django的安装配置与启动