您的位置:首页 > 编程语言 > Python开发

使用python检测用户登陆状态

2018-04-28 09:14 211 查看

win32ts.WTSRegisterSessionNotification
监控计算机状态改变
https://msdn.microsoft.com/en-us/library/aa383841(v=vs.85).aspx

用户状态改变后,执行函数myststa(event),其中event代表用户状态信息,具体值查
https://msdn.microsoft.com/en-us/library/aa383828(v=vs.85).aspx
代码:

import win32con
import win32gui
import win32ts

WM_WTSSESSION_CHANGE        = 0x2B1

class WTSMonitor():
className = "WTSMonitor"
wndName = "WTS Event Monitor"
def __init__(self):
wc = win32gui.WNDCLASS()
wc.hInstance = hInst = win32gui.GetModuleHandle(None)
wc.lpszClassName = self.className
wc.lpfnWndProc = self.WndProc
self.classAtom = win32gui.RegisterClass(wc)
style = 0
self.hWnd = win32gui.CreateWindow(self.classAtom, self.wndName,
style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
0, 0, hInst, None)
win32gui.UpdateWindow(self.hWnd)
win32ts.WTSRegisterSessionNotification(self.hWnd, win32ts.NOTIFY_FOR_ALL_SESSIONS)
def start(self):
win32gui.PumpMessages()
def stop(self):
win32gui.PostQuitMessage(0)
def WndProc(self, hWnd, message, wParam, lParam):
if message == WM_WTSSESSION_CHANGE:
self.OnSession(wParam, lParam)
def OnSession(self, event, sessionID):
print(event)
myststa(event)
if __name__ == '__main__':
m = WTSMonitor()
m.start()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 用户登陆