首页 > 解决方案 > 用python检测关机事件

问题描述

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

标签: pythonwindowssubprocessshutdown

解决方案


因此,您需要的是 win32API 和此处描述的函数。您可以使用此函数添加所谓的控制处理程序方法,该方法将在程序因任何原因(包括关机)关闭或终止时运行。您可以在此处找到可以传递给处理程序的不同代码及其含义的列表。理想情况下,您应该有一个处理程序方法,它只是关闭服务器,等待它完成关闭,然后返回。

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

编辑:正如@ErykSun 所述,您需要创建一个隐藏窗口才能接收事件。老实说,我不确定如何创建那个隐藏的窗口。一些文档建议将您的应用程序作为服务运行也可能有效。如果我有时间,我会更多地研究这个。


推荐阅读