簡體   English   中英

在Python中檢測Windows注銷

[英]Detect windows logout in Python

當我在python中注銷Windows時,如何檢測或通知?

編輯:Martinv.Löwis的答案很好,並且可以完全注銷,但它不能用於“快速用戶切換”事件,例如按下win + L這是我真正需要的。

編輯:我不使用gui這是作為服務運行

您可以使用終端服務API檢測快速用戶切換事件,您可以使用pywin32中win32ts模塊從Python訪問該API。 在GUI應用程序中,調用WTSRegisterSessionNotification以接收通知消息, WTSUnRegisterSessionNotification以停止接收通知,並在窗口過程中處理WM_WTSSESSION_CHANGE消息。

如果您使用Python編寫Windows服務,請使用RegisterServiceCtrlHandlerEx函數來檢測快速用戶切換事件。 這在pywin32庫中可用作servicemanager模塊中的RegisterServiceCtrlHandler函數。 處理程序函數中 ,查找SERVICE_CONTROL_SESSIONCHANGE通知。 有關特定通知代碼的詳細信息,另請參閱WM_WTSSESSION_CHANGE文檔。

來自python-win32郵件列表的這個帖子中有一些更詳細的信息,這可能很有用。

我希望這有幫助!

在控制台應用程序中,您可以使用win32api.SetConsoleCtrlHandler並查找CTRL_LOGOFF_EVENT。 在GUI應用程序中,您需要打開一個窗口並等待WM_QUERYENDSESSION消息。 它的工作原理(如果它可以工作)取決於您的GUI庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM