防止Windows 7关机

4 投票
1 回答
2733 浏览
提问于 2025-04-15 19:53

我知道用 shutdown -a 可以取消正在进行的Windows关机,但我想知道有没有什么方法可以检查一下是否有关机正在进行。

理想情况下,我希望能有一个像这样的简单程序:

 import os

 while True:
    shuttingDown = <shutdown variable to check>
    if shuttingDown:
         os.system("shutdown.exe -a")

1 个回答

1

如果你想在Windows关机的时候进行一些反应,可以关注一下一个叫做 WM_QUERYENDSESSION 的消息(不知道用Python的win32 API能不能简单实现,但在C语言中很简单)。不过,这个方法可能无法阻止应用程序关闭,因为Windows会向那些对查询消息回答“是”的程序发送WM_ENDSESSION消息。

我想你可能更想要的是阻止定时关机,这通常是通过“shutdown.exe”来实现的。我相信这个程序使用了 InitiateSystemShutdown 来显示关机对话框,但我没有找到可以拦截这个调用的资源(至少我没有找到,也不知道Windows有没有这样的功能)。

撰写回答