在Python中检测Windows注销

Unk*_*ech 5 python winapi

当我在python中注销Windows时,如何检测或通知?

编辑:Martinv.Löwis的回答很好,并且可以完全注销,但它不能用于"快速用户切换"事件,例如按下win + L,这是我真正需要的.

编辑:我不使用gui这是作为服务运行

Chr*_*isN 6

您可以使用终端服务API检测快速用户切换事件,您可以使用pywin32中win32ts模块从Python访问该API .在GUI应用程序中,调用WTSRegisterSessionNotification以接收通知消息,WTSUnRegisterSessionNotification以停止接收通知,并在窗口过程中处理消息.WM_WTSSESSION_CHANGE

如果您使用Python编写Windows服务,请使用该RegisterServiceCtrlHandlerEx功能检测快速用户切换事件.这在pywin32库中可用作模块中的RegisterServiceCtrlHandler函数servicemanager.在处理程序函数中,查找SERVICE_CONTROL_SESSIONCHANGE通知.有关WM_WTSSESSION_CHANGE特定通知代码的详细信息,另请参阅文档.

来自python-win32邮件列表的这个帖子中有一些更详细的信息,这可能很有用.

我希望这有帮助!