使用 python 检测关机事件

Detect shutdown event with python

我的共享电脑上有一个 Minecraft 基岩版服务器 运行。我想通过 python 与它交互。但是,我遇到的一个问题是我的兄弟们有时会重新启动我们的电脑,或者 Windows 更新。我需要知道如何检测关机事件并在重启前将关机命令发送到服务器。我正在使用子进程库。

因此,您需要的是 win32API 和描述的函数 here. You can use this function to add what's called a Control Handler Method that will run whenever the program is being shut down or terminated for any reason, including shutdown. You can find a list of the different codes that can be passed to the handler and their meanings here。理想情况下,您应该有一个处理程序方法来关闭服务器,等待它完成关闭,然后 return.

我对图书馆没有任何个人经验,但应该相当简单。

编辑:如@ErykSun 所述,您需要创建一个隐藏的 window 才能接收事件。老实说,我不确定如何创建隐藏的 window。一些文档建议 运行 您的应用程序即服务也可以工作。如果我有时间,我会更深入地研究这个问题。