python如何退出屏幕保护程序

时间:2013-12-05 21:26:22

标签: python python-3.x pygame

我必须退出屏幕保护程序。我有一个闹钟(用python-pygame编写),一分钟后,没有输入,进入屏幕保护程序(空白)。我还有一个pir传感器,当我通过我的手时,它会停止警报。因此,如果我在空白屏幕,屏幕保护程序被激活并且警报响起,我可以用pir停止警报,但屏幕仍然是空白的。所以,我会问我是否有一个命令可以放入python脚本中,当我在pir附近移动手时可以退出屏幕保护程序。查看屏幕保护程序的激活时间也很有用。 感谢

2 个答案:

答案 0 :(得分:1)

假设程序将在屏幕保护程序开始时继续运行(但是,如果没有,请考虑创建即使在计算机处于睡眠状态时也会在后台运行的守护程序或服务),有一种方法可以做这个。我的解决方案要求系统是一个Windows系统(尽管如此,如果你指定的话,我会更有帮助)。这正是构建pywin32库所要执行的任务。使用子进程或os模块访问命令行中的唤醒代码可能会导致意外问题,因此最好生成一小段鼠标事件来唤醒计算机。以下是在屏幕保护程序中唤醒计算机的代码示例:

import win32api
import random

def wakeup():
    win32api.SetCursorPos((random.choice(range(300)),random.choice(range(300))))

这只会将鼠标移动到屏幕上的随机位置,以便计算机唤醒。

至于检查时间,这很简单。使用时间模块,您可以使用以下命令获取系统时间:

time.localtime(time.time())

Time.time()仅以秒为单位返回时间,localtime会将其转换为更容易理解的内容。

答案 1 :(得分:1)

我使用了所有建议,并编写了以下代码,它确实有效:

if io.input(pir_pin):
    pygame.mouse.set_pos((random.choice(range(600)), random.choice(range(600))))
    alarm.just_die()
time.sleep(0.5)

当我移动手时,我会看到屏幕,如果闹铃响起,闹钟会停止。