码迷,mamicode.com
首页 > 编程语言 > 详细

使用python检测用户登陆状态

时间:2018-04-28 10:43:18      阅读:406      评论:0      收藏:0      [点我收藏+]

标签:python

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检测用户登陆状态

标签:python

原文地址:http://blog.51cto.com/13723657/2108705

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!