Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中检测计算机/程序关闭?_Python_Windows - Fatal编程技术网

在Python中检测计算机/程序关闭?

在Python中检测计算机/程序关闭?,python,windows,Python,Windows,我有一个Python脚本,定期循环运行,对我的照明系统进行调整。当我关闭电脑时,我希望我的脚本能够检测到这一点,并将灯全部关闭 如何在Python中检测计算机开始关闭 或者,假设Windows向Python发送“关机时间”通知,我如何拦截该通知以关闭灯光并退出循环?这是在系统关机时执行操作的错误方式。关机过程的工作是停止正在运行的过程,然后关闭电源;如果您试图从程序内部检测到这种情况,并通过执行一些最后的操作来做出反应,那么这就是操作系统和您的程序之间的一场竞赛,谁先执行。更有可能的是,您的程序

我有一个Python脚本,定期循环运行,对我的照明系统进行调整。当我关闭电脑时,我希望我的脚本能够检测到这一点,并将灯全部关闭

如何在Python中检测计算机开始关闭


或者,假设Windows向Python发送“关机时间”通知,我如何拦截该通知以关闭灯光并退出循环?

这是在系统关机时执行操作的错误方式。关机过程的工作是停止正在运行的过程,然后关闭电源;如果您试图从程序内部检测到这种情况,并通过执行一些最后的操作来做出反应,那么这就是操作系统和您的程序之间的一场竞赛,谁先执行。更有可能的是,您的程序在执行必要的操作之前已经停止

相反,您应该挂接到正常协议中,以便在关机时执行操作。这将告诉关机实用程序向您的程序发送一个明确的信号,并等待它被确认,这将给您足够的时间(在合理的范围内)执行您必须执行的操作。如何准确注册以获得通知因操作系统而异,因此这更多是一个操作系统特定的问题,而不是Python问题。

您应该对消息做出反应

此消息在用户注销或计算机关闭时发送

如果您也想对睡眠/休眠做出反应,则需要使用
PBT\u APMSUSPEND


但我不知道如何在python中实现这一点。我想这取决于您的窗口框架,因为您需要一个windows/a消息循环来接收消息。

嗨,Crummy,关于如何使用代码实际实现某些东西的问题属于StackOverflow(管理员应该能够迁移它)。可能重复感谢-您的评论让我想到了我想找的内容。谢谢你的帮助!